Spring注解驱动第十一讲--引用Spring底层组件

在日常开发过程中,自定义组件想要使用Spring容器底层的一些组件.那么自定义组件实现***Aware即可;在创建对象的时候,会调用接口规定的方法注入相关组件;例如:

实现ApplicationContextAware接口,可以在自定义组件中获得Spring的ioc容器,代码如下:

public class Color implements ApplicationContextAware,BeanNameAware,EmbeddedValueResolverAware{
    
    private ApplicationContext applicationContext;

    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        //实现ApplicationContextAware接口之后,可以使用本方法将Spring容器加再进来,保存起来使用.
        this.applicationContext=applicationContext ;
    }

    public void setBeanName(String name) {
        //实现BeanNameAware接口之后,该方法可以获得到当前bean在ioc容器中的名字;
        System.out.println("当前bean在容器中的名字为:" + name);
    }
    
    public void setEmbeddedValueResolver(StringValueResolver resolver) {
        // 实现EmbeddedValueResolverAware接口之后,可以获取到String类型的值解析器
        System.out.println("你好${os.name},我是#{90*20}");
        
    }
    
}

运行测试类,运行结果如下:

当前bean在容器中的名字为:color
你好Mac OS X,我是1800

扩展:如果想注入其他的底层组件,实现***Aware接口即可.

posted @ 2019-07-29 15:39  焦糖毛嗑  阅读(203)  评论(0编辑  收藏  举报