Spring bean的生命周期

生命周期图解释

 

 

 

1.instantiate bean对象实例化

2.populate properties 封装属性

3.如果Bean实现BeanNameAware 执行 setBeanName

4.如果Bean实现BeanFactoryAware 执行setBeanFactory 获取Spring容器

5.如果存在类实现 BeanPostProcessor(后处理Bean ,执行postProcessBeforeInitialization

6.如果Bean实现InitializingBean 执行 afterPropertiesSet

7.调用<bean init-method="init"> 指定初始化方法 init

8.如果存在类实现 BeanPostProcessor(处理Bean ,执行postProcessAfterInitialization

执行业务处理

9.如果Bean实现 DisposableBean 执行 destroy

 

10.调用<bean destroy-method="customerDestroy"> 指定销毁方法 customerDestroy

下面举个了例子:

1,创建bean对象 并实现spring bean 底层方法

 

/**
* @Auther: zhangcheng
* @Date: 2019/9/22 23:26
* @Description:
*/
public class User implements BeanNameAware, BeanFactoryAware, InitializingBean , DisposableBean {

private String username;
private String password;

@Override
public void setBeanName(String s) {

System.out.println("3. s设置bean名字" +s);

}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
System.out.println("2。赋值属性"+username);
this.password = password;
}

public User(){
System.out.println("1.实例化....");
}


@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}


@Override
public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
System.out.println("4.把对象放进容器");
}

@Override
public void afterPropertiesSet() throws Exception {
System.out.println("6 属性赋值完成 ");
}

public void myInit(){
System.out.println("7.自定义的初始化方法...");
}

@Override
public void destroy() throws Exception {
System.out.println("9 bean 被销毁");

}
public void myDestroy(){
System.out.println("10 自定义销毁方法" );
}
}

2 创建
bean的加工器,在bean的实例化过程中对bean做一些包装处理,里边提供两个方法

 


 以上实现的两个方法主要作用是:

     1、判断bean是否继承了InitializingBean,如果继承接口,执行afterPropertiesSet()方法,

      2、获得是否设置了init-method属性,如果设置了,就执行设置的方法


2.创建xml文件 声明bean对象 并装配bean对象


 

 

 

3.创建测试文件

 

 

执行结果如下

 

 

 

 

property

posted @ 2019-10-26 15:00  成子吃橙子  阅读(134)  评论(0编辑  收藏  举报