博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring bean初始化及销毁你必须要掌握的回调方法。
阅读量:2001 次
发布时间:2019-04-28

本文共 786 字,大约阅读时间需要 2 分钟。

转载自

 

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

 

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

 

你可能感兴趣的文章
crontab定时任务写法
查看>>
nginx: [emerg] unknown directive "if($remote_addr" in /usr/local/tools/nginx/conf/nginx.conf:57
查看>>
module pip has no attribute main问题解决
查看>>
LeetCode 134.Gas Station (加油站)
查看>>
Python之命名元组 (namedtuple)
查看>>
使用libpcap过滤arp
查看>>
在VC环境中调试跟踪变量
查看>>
一个简单而又灵活的IOCP模块——完成端口通讯服务器(IOCP Socket Server)设计(四)
查看>>
[转帖]Robots.txt指南
查看>>
Eclipse + MyEclipse下配置J2EE工程(英文界面)
查看>>
Eclipse及其插件下载网址大全
查看>>
正则表达式简介(微软)--6.优先权顺序
查看>>
多用户与多租户的区别
查看>>
Python自动化运维 - day14 - JavaScript基础
查看>>
oracle保存小数点前为"0"的问题
查看>>
linux sar 命令详解
查看>>
ipvsadm 安装配置
查看>>
Linux shell脚本的字符串截取
查看>>
数据库复习(4)
查看>>
1小时点击量破千万!阿里巴巴首发:MySQL高级调优笔记!全是技术重点
查看>>