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

      得到结果:

  • 相关阅读:
    电脑U盘启动制作
    windows系统使用
    CentOS升级Openssl至openssl-1.1.0
    PHP编译安装时常见错误解决办法
    阿里 Linux服务器外网无法连接MySQL解决方法
    centos 下 sphinx安装和配置
    集成百度编辑器 ueditor 后端配置项没有正常加载,上传插件不能正常使用!
    nginx 环境 thinkphp 隐藏index.php
    在 Linux 下搭建 Git 服务器
    MySQL远程连接不上的解决方法
  • 原文地址:https://www.cnblogs.com/lyh233/p/12450388.html
Copyright © 2011-2022 走看看