spring bean初始化及销毁你必须要掌握的回调方法。-阿里云开发者社区

开发者社区> 开发与运维> 正文

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

简介: spring bean在初始化和销毁的时候我们可以触发一些自定义的回调操作。 初始化的时候实现的方法 1、通过java提供的@PostConstruct注解; 2、通过实现spring提供的InitializingBean接口,并重写其afterPropertiesSet方法; 3、通过spring的xml bean配置或bean注解指定初始化方法,如下面实例的initMethod方法通过@bean注解指定。

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

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章