spring 源码学习二:beanPostProcessor(后置处理器)使用总结
spring 源码学习二:beanPostProcessor(后置处理器)使用总结
先说说概念:beanPostProcessor(接口)也叫后置处理器,作用是在Bean对象在实例化和依赖注入完毕后,在显示调用初始化方法的前后添加我们自己的逻辑。注意是Bean实例化完毕后及依赖注入完成后触发的。接口的源码如下:

有两个方法:1、postProcessBeforeInitialization--实例化、依赖注入完毕,在调用显示的初始化之前完成一些定制的初始化任务;
2、postProcessAfterInitialization--实例化、依赖注入、初始化完毕时执行
那么在我们做bean的实例化、依赖注入、初始化的时候可以自定义去扩展bean的初始/后置处理操作,直接上代码:
第一步:定义person
public class Person {
private Integer id;
private String name;
public Person() {
System.out.println("person 被初始化");
}
public void start(){
System.out.println("person 中自定义的初始化方法");
}
public Person(Integer id, String name) {
this.id = id;
this.name = name;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Person{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
第二步:自定义beanPostProcessor:

第三步:配置xml并且自定义方法start

ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
Person bean = ac.getBean(Person.class);
System.out.println(bean);
结果:

总结:通过bean的后置处理器,我们可以在bean的初始化、注入前后可以自定义bean的一些操作,方便我们在bean的创建过程中进行维护,其实本质也是ioc的思想

浙公网安备 33010602011771号