post processor和aware

参考资料:源码注释或从源码生成的API文档(由于个人理解可能有误差,强烈建议自己去看源码注释或从源码生成的API文档)


一.org.springframework.beans.factory.config.BeanFactoryPostProcessor
允许修改应用上下文的bean定义,适应上下文的底层Bean工厂的Bean属性值.
应用程序上下文可以自动检测那些BeanFactoryPostProcessor Bean,并在创建任何其他Bean之前应用它们。
一个BeanFactoryPostProcessor可能交互或修改Bean的定义,但从不会实例化Bean.这样做可能会导致过早实例Bean,违反了容器,并造成意想不到的副作用.如果需要bean实例交互,考虑实现BeanPostProcessor来代替。
只提供了一个回调方法:void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException;


二.org.springframework.beans.factory.config.BeanPostProcessor
提供工厂回调,允许自定义修改新的Bean实例,例如,检查标记接口或使用代理包装它们.
应用程序上下文可以自动检测那些BeanPostProcessor Bean,并在随后创建的任何Bean来应用它们。
普通Bean工厂允许编程式注册后post-processor,并通过此工作来应用所有Bean的创建.
通常情况下,post-processor是通过标记接口或类似会实现postProcessBeforeInitialization(java.lang.Object, java.lang.String).而使用代理包装Bean的post-processor通常会实现postProcessAfterInitialization(java.lang.Object, java.lang.String)


三.org.springframework.beans.factory.Aware
标记超接口表明一个Bean有资格由一个特定的框架对象的spring容器,通过回调方式的方法来通知.实际的方法签名是由具体的子接口决定的.但通常接受一个参数而只返回void的方法.注意,仅实现Aware是没有提供默认的功能.相反,处理必须明确地写明,如在一个BeanPostProcessor,参考ApplicationContextAwareProcessor和AbstractAutowireCapableBeanFactory处理 *Aware接口回调的例子.下面列举一些比较重要的Aware接口概括:


名称 注入的依赖
ApplicationContextAware ApplicationContext
ApplicationEventPublisherAware ApplicationEventPublisher(封装的ApplicationContext的事件发布者)
BeanClassLoaderAware ClassLoader(用来加载Bean类的类加载器)
BeanFactoryAware BeanFactory
BeanNameAware String(设置Bean的名字)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值