spring零基础学习

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

2017-07-21  本文已影响0人  又是那一片天

设置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 + "]";
    }
    
}
<!-- 设置生命周期 方法  init-method="对象方法名" 属性初始方法
    destroy-method="对象方法名" 属性销毁方法
    -->
<bean id="pojo" class="pojo.Pojo" init-method="init"
        destroy-method="destroy">
        <property name="name" value="我是对象"></property>
</bean>

bean的后置处理器

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;
    }

}

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

<bean id="MyBeanPostProcessor" class="pojo.MyBeanPostProcessor" ></bean>
上一篇 下一篇

猜你喜欢

热点阅读