本次用了spring的这些接口:
接口名 实现接口方法
BeanFactoryAware setBeanFactory()
BeanNameAware setBeanName()
InitializingBean afterPropertiesSet()
DisposableBean destroy()
BeanFactoryPostProcessor postProcessBeanFactory
BeanPostProcessor postProcessBeforeInitialization
postProcessAfterInitialization
继承了类InstantiationAwareBeanPostProcessorAdapter,重写里面的三个方法postProcessBeforeInstantiation(),postProcessAfterInstantiation(),postProcessPropertyValues。
下面我们通过一个例子,来看bean的生命周期:
1.创建Student类,实现接口BeanFactoryAware,BeanNameAware,InitializingBean,DisposableBean
public class Student implements BeanFactoryAware,BeanNameAware,InitializingBean,DisposableBean{
private String name;
private Integer age;
private BeanFactory beanFactory;
private String beanName;
public String getName() {
return name;
}
public void setName(String name) {
System.out.println("调用了 Student->setName");
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
System.out.println("调用了 Student->setAge");
this.age = age;
}
public Student() {
System.out.println("调用了 Student->构造器");
}
@Override
public void destroy() throws Exception {
//DisposableBean
System.out.println("调用了 DisposableBean->destroy");
}
//在初始化时调用
@Override
public void afterPropertiesSet() throws Exception