bean的生命周期bean的后置处理器
提供了两种后置处理器
Bean后置处理器
Bean后置处理器是一种特殊的Bean,这种特殊的Bean并不对外服务,主要负责对容器中的其他Bean执行后处理bean的生命周期,例如容器中的目标Bean生成代理等。Bean后处理器会在Bean实例创建成功后,为Bean实例进行进一步的增强处理。实现接口,实现和方法。
public class MyProcessor implements BeanPostProcessor {
/**
* 初始化之前
* @param o
* @param s
* @return
* @throws BeansException
*/
@Override
public Object postProcessBeforeInitialization(Object o, String s) throws BeansException {
if(o instanceof Connection){
System.out.println("初始化之前");
}
return o;
}
/**
* 初始化之后
* @param o
* @param s
* @return
* @throws BeansException
*/
@Override
public Object postProcessAfterInitialization(Object o, String s) throws BeansException {
if(o instanceof Connection){
System.out.println("初始化之后");
}
return o;
}
}
这里处理完之后一定要将bean返回回去,否则后续无法获取到bean
注:如果使用作为容器,则必须手动注册Bean后置处理器,程序必须获取Bean后置处理器实例,然后手动注册。
BeanPostProcessor bp = (BeanPostProcessor)beanFactory.getBean("bp");
beanFactory.addBeanPostProcessor(bp);
Person p = (Person)beanFactory.getBean("person");
容器后置处理器
容器后置处理器负责容器本身,实现ssor接口,实现接口的ry方法对容器进行处理,可以对容器进行自定义扩展bean的生命周期,
在标准初始化之后调用,即所有的已经保存加载到中,但是bean的实例还未创建
public interface BeanFactoryPostProcessor {
void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException;
}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。