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的思想

 

posted @ 2020-10-26 11:18  心思慕晨  阅读(591)  评论(0)    收藏  举报