查看原文
其他

spring bean初始化及销毁你必须要掌握的回调方法。

2017-06-10 Java技术栈


spring bean在初始化和销毁的时候我们可以触发一些自定义的回调操作。


初始化的时候实现的方法


1、通过java提供的@PostConstruct注解;

2、通过实现spring提供的InitializingBean接口,并重写其afterPropertiesSet方法;

3、通过spring的xml bean配置或bean注解指定初始化方法,如下面实例的initMethod方法通过@bean注解指定。


销毁的时候实现的方法


1、通过java提供的@PreDestroy注释;

2、通过实现spring提供的DisposableBean接口,并重写其destroy方法;

3、通过spring的xml bean配置或bean注解指定销毁方法,如下面实例的destroyMethod方法通过@bean注解指定。


初始、销毁顺序是怎样的呢?


我们通过一个简单的测试安全来验证一下,分别把它们都派上用场。



上图为要加载并销毁的bean类。




上图为测试并加载spring容器类,输出这个方法得到以下结果。


===Constructor===

===@PostConstruct===

===InitializingBean afterPropertiesSet===

===initMethod===

===@PreDestroy===

===DisposableBean distroy===

===destroyMethod===


结论


从测试结果看出来的结果可以总结初始和销毁对应的顺序为:


初始:类构造器 > @PostConstruct > InitializingBean > init-method


销毁:@PreDestroy > DisposableBean > destroyMethod


可能还有别的初始、销毁的实现方法,欢迎留言和我交流。



    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存