• 16、spring注解学习(自动装配)——Aware注入Spring底层组件&原理


    自动装配-Aware注入Spring底层组件&原理

    • Aware 接口,提供了类似回调函数的功能
    • 自定义组件想要使用Spring 容器底层的一些组件(Application Context,Bean Factory);自定义组件需要实现xxxAware接口;在创建对象的时候,会调用接口规定的方法注入相关组件
      package org.springframework.beans.factory;
      
      public interface Aware {
      
      }

      ApplicationContextAware 自动注入IOC容器

      package org.springframework.context;
      
      import org.springframework.beans.BeansException;
      import org.springframework.beans.factory.Aware;
      
      public interface ApplicationContextAware extends Aware {
      
          void setApplicationContext(ApplicationContext applicationContext) throws BeansException;
      
      }

      ApplicationEventPublisherAware 注入事件派发器

      package org.springframework.context;
      
      import org.springframework.beans.factory.Aware;
      
      public interface ApplicationEventPublisherAware extends Aware {
      
          void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher);
      
      }

      BeanClassLoaderAware 类加载器

      package org.springframework.beans.factory;
      
      public interface BeanClassLoaderAware extends Aware {
      
          void setBeanClassLoader(ClassLoader classLoader);
      
      }

      BeanFactoryAware Bean工厂

      package org.springframework.beans.factory;
      
      import org.springframework.beans.BeansException;
      public interface BeanFactoryAware extends Aware {
      
          void setBeanFactory(BeanFactory beanFactory) throws BeansException;
      
      }

      BeanNameAware Bean名字

      package org.springframework.beans.factory;
      
      public interface BeanNameAware extends Aware {
      
          void setBeanName(String name);
      
      }

      EmbeddedValueResolverAware Embedded值解析器

      package org.springframework.context;
      
      import org.springframework.beans.factory.Aware;
      import org.springframework.util.StringValueResolver;
      
      public interface EmbeddedValueResolverAware extends Aware {
      
          void setEmbeddedValueResolver(StringValueResolver resolver);
      
      }

      EnvironmentAware 环境

      package org.springframework.context;
      
      import org.springframework.beans.factory.Aware;
      import org.springframework.core.env.Environment;
      
      public interface EnvironmentAware extends Aware {
      
          void setEnvironment(Environment environment);
      
      }

      ImportAware 导入相关的

      package org.springframework.context.annotation;
      
      import org.springframework.beans.factory.Aware;
      import org.springframework.core.type.AnnotationMetadata;
      
      public interface ImportAware extends Aware {
      
          void setImportMetadata(AnnotationMetadata importMetadata);
      
      }

      LoadTimeWeaverAware 导入相关的

      package org.springframework.context.weaving;
      
      import org.springframework.beans.factory.Aware;
      import org.springframework.instrument.classloading.LoadTimeWeaver;
      
      public interface LoadTimeWeaverAware extends Aware {
      
          void setLoadTimeWeaver(LoadTimeWeaver loadTimeWeaver);
      
      }

      MessageSourceAware 国际化

      package org.springframework.context;
      
      import org.springframework.beans.factory.Aware;
      
      public interface MessageSourceAware extends Aware {
      
          void setMessageSource(MessageSource messageSource);
      
      }

       NotificationPublisherAware 发送通知的支持

      package org.springframework.jmx.export.notification;
      
      import org.springframework.beans.factory.Aware;
      
      public interface NotificationPublisherAware extends Aware {
      
          void setNotificationPublisher(NotificationPublisher notificationPublisher);
      
      }

      ResourceLoaderAware 资源加载器

      package org.springframework.context;
      
      import org.springframework.beans.factory.Aware;
      import org.springframework.core.io.ResourceLoader;
      
      public interface ResourceLoaderAware extends Aware {
      
          void setResourceLoader(ResourceLoader resourceLoader);
      
      }

      得到结果:

  • 相关阅读:
    2013414
    Juqery Html(),append()等方法的Bug
    UpdatePanel 与 jQuery
    (C#)方法参数关键字:ref、out、params详解
    ASP.NET MVC 3 RC2 版本的一些新特性及AllowHtml属性Bug解决办法
    [hystar整理]Entity Framework 教程 转
    SQL 中in exists 和临时表用法
    ASP.NET 用户控件自定义属性、方法、事件
    SQL选择不重复记录
    sql over 用法
  • 原文地址:https://www.cnblogs.com/lyh233/p/12450388.html
Copyright © 2020-2023  润新知