在测试BeanPostProcessor接口的两个方法时,
发现该接口的两个方法并不是在类初始化一前一后调用的,具体如下:
1、一个类实现BeanPostProcessor接口,并实现该接口的两个方法:
public class Car implements BeanPostProcessor {
public Car(){
System.out.println("创建实例 constructor 。。。。");
}
public void init(){
System.out.println("对象初始化。。。。");
}
public void destroy(){
System.out.println("对象销毁。。。。");
}
public Object postProcessBeforeInitialization(Object bean, String beanName){
System.out.println("beanName "+ beanName +" 对象初始化前调用postProcessBeforeInitialization。。。。。");
return bean;
}
public Object postProcessAfterInitialization(Object bean, String beanName){
System.out.println("beanName "+ beanName +" 对象初始化后调用postProcessAfterInitialization。。。。。");
return bean;
}
}
2、实例化Car对象
@Configuration
public class MainConfigLifcycle {
@Bean(initMethod = "init", destroyMethod = "destroy")
public Car car(){
return new Car();
}
}
3、打印日志如下:
所以我怀疑BeanPostProcessor接口的两个方法并不是在类初始化一前一后调用的,请大家指导下,谢谢!