Spring Bean的初始化回调和销毁回调

Spring 官方提供了 3 种方法实现初始化回调和销毁回调:
1.实现 InitializingBean 和 DisposableBean 接口。
2.在 XML 中配置 init-method 和 destory-method。
3.使用 @PostConstruct 和 @PreDestory 注解。

初始化回调
(1)使用接口
实现 InitializingBean接口, 在 afterPropertiesSet 方法内指定 Bean 初始化后需要执行的操作。

public class User implements InitializingBean {
    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println("调用接口:InitializingBean,方法:afterPropertiesSet,无参数");
    }
}

(2)配置XML
可以通过 init-method 属性指定 Bean 初始化后执行的方法。

    <bean id="hello" class="com.wen.pojo.Hello" init-method="init"/>
public class User {
    public void init() {
        System.out.println("调用init-method指定的初始化方法:init" );
    }
}

(3)使用注解
使用 @PostConstruct 注解标明该方法为 Bean 初始化后执行的方法。

public class ExampleBean {
    @PostConstruct
    public void init() {
        System.out.println("@PostConstruct注解指定的初始化方法:init" );
    }
}

销毁回调
(1)使用接口
实现DisposableBean接口,在destroy()方法指定Bean销毁要执行的操作

public class User implements DisposableBean {
    @Override
    public void destroy() throws Exception {
        System.out.println("调用接口:DiposibleBean,方法:destroy,无参数。");
    }
}

(2)配置XML
可以通过 destroy-method 属性指定 Bean 销毁前执行的方法。

<bean id="..." class="..." destroy-method="destroy"/>
public class User {
    public void destroy() {
        System.out.println("调用destroy-method指定的销毁方法:destroy" );
    }
}

(3) 使用注解
使用 @PreDestory 注解标明该方法为 Bean 销毁前执行的方法。

public class ExampleBean {
    @PreDestory 
    public void destroy() {
        System.out.println("@PreDestory注解指定的初始化方法:destroy" );
    }
}

你可能感兴趣的:(spring,spring,java)