spring学习9(ioc容器中 bean的生命周期方法)

设置bean生命周期

  • 新建一个类
public class Pojo {
    private String name;
    
    public Pojo() {
    System.out.println("创建对象");
    }
    public void init() {
        System.out.println("初始化对象");
    }
    public void destroy() {
        System.out.println("销毁方法");
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public String toString() {
        return "Pojo [name=" + name + "]";
    }
    
}
  • 使用bean标签中的 init-method="对象方法名" 属性设置初始方法

  • 使用bean标签中的 destroy-method="对象方法名" 属性设置销毁方法



        

  • spring 会在创建bean时调用 init-method设置的方法 销毁bean 调用 destroy-method 设置的方法

bean的后置处理器

  • 1 后置处理器需要实现 BeanPostProcessor接口
public class MyBeanPostProcessor implements BeanPostProcessor{
    
    @Override
    public Object postProcessBeforeInitialization(Object bean, String arg1) throws BeansException {
        //调用init-method前调用
    }
    
    @Override
    public Object postProcessAfterInitialization(Object bean, String arg1) throws BeansException {
        //调用 destroy-method 前调用
        return bean;
    }

}

  • 2 spring容器调用bean的init初始化方法前调用处理器的postProcessBeforeInitialization

spring容器调用bean的destroy销毁方法前调用处理器的 postProcessAfterInitialization

  • 3 后置处理器会监听所有的bean
  • 4 后置处理器两个方法参数 第一个bean的对象 第二个bean配置的id
  • 5 返回值是实际返回给用户对象

你可能感兴趣的:(spring学习9(ioc容器中 bean的生命周期方法))