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);
      
      }

      得到结果:

  • 相关阅读:
    dispatch_semaphore
    dispatch_set_target_queue
    iOS charles支持https抓包
    ios8 毛玻璃效果
    工程里配置.xconfig文件
    线程安全的nsmutabledictionary(读weex代码)
    关于信号量以及多线程的代码
    dispatch_set_target_queue测试
    dyld: Library not loaded问题解决
    iOS图片上加标签或者水印
  • 原文地址:https://www.cnblogs.com/lyh233/p/12450388.html
Copyright © 2011-2022 走看看