(一)IOC 容器:【11】Aware 注入Spring底层组件

一、Aware 注入 Spring 底层组件

   自定义组件想要使用Spring容器底层的一些组件(ApplicationContext,BeanFactory,xxx)

  自定义组件实现 xxxAware:在创建对象的时候,会调用接口规定的方法,注入相关组件 Aware

  Aware把Spring底层一些组件注入到自定义的 bean中

  示例:

@Component
public class Red implements ApplicationContextAware, BeanNameAware, EmbeddedValueResolverAware {

    private ApplicationContext applicationContext;

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        this.applicationContext = applicationContext;
        System.out.println("传入的IOC容器" +  applicationContext);
    }

    @Override
    public void setBeanName(String name) {
        System.out.println("当前bean的名字:" + name);
    }

    @Override
    public void setEmbeddedValueResolver(StringValueResolver resolver) {
        String resolveStringValue =  resolver.resolveStringValue("你好${os.name} 我是  #{20*2}");
        System.out.println("解析的字符串是" +  resolveStringValue);
    }
}

   原理:

    XXXAware 的功能:使用XXXProcessor来处理的。

    如:ApplicationContextAware =》 ApplicationContextAwareProcessor

原文地址:https://www.cnblogs.com/niujifei/p/15553429.html