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接口即可.