zoukankan      html  css  js  c++  java
  • 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);
      
      }

      得到结果:

  • 相关阅读:
    Nginx之keepalived高可用工具
    Linux安装Nginx
    Nginx解决服务器宕机问题
    前端知识小札
    SQL入门(3):定义约束/断言assertion/触发器trigger
    SQL入门(2): Oracle内置函数-字符/数值/日期/转换/NVL/分析函数与窗口函数/case_decode
    Excel VBA入门(8): 快捷键/内置常量/代码调试/错误处理/代码优化
    小学生都看得懂的C语言入门(6): 字符串
    小学生都看得懂的C语言入门(5): 指针
    小学生都看得懂的C语言入门(4): 数组与函数
  • 原文地址:https://www.cnblogs.com/lyh233/p/12450388.html
Copyright © 2011-2022 走看看