-
Spring中Bean初始化和销毁方法执行的优先级
Spring有三对初始化和销毁方法
- 通过@Bean注解指定initMethod和destroyMethod
- 实现InitializingBean和DisposableBean接口
- 使用@PostContruct和@PreDestroy
那么问题来了,这三个执行的优先级是什么呢?
定义一个Car类
public class Car implements InitializingBean, DisposableBean {
public Car() {
System.out.println("car constructor");
}
@PostConstruct
public void postConstruct(){
System.out.println("postConstruct");
}
@Override
public void afterPropertiesSet() throws Exception {
System.out.println("InitializingBean afterPropertiesSet");
}
public void initMethod(){
System.out.println("initMethod");
}
@PreDestroy
public void preDestroy(){
System.out.println("preDestroy");
}
@Override
public void destroy(){
System.out.println("DisposableBean destroy");
}
public void destroyMethod(){
System.out.println("destroyMethod");
}
}
定义配置类,并注入
@Configuration
public class MyConfigOfLifeCycle {
@Bean(initMethod = "initMethod",destroyMethod = "destroyMethod")
public Car car(){
return new Car();
}
}
测试
@Test
public void test04(){
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(MyConfigOfLifeCycle.class);
System.out.println("容器创建完成");
Object car = context.getBean("car");
context.close();
}
执行结果
car constructor
postConstruct
InitializingBean afterPropertiesSet
initMethod
容器创建完成
preDestroy
DisposableBean destroy
destroyMethod
结论
优先级:@PostConstruct > InitializingBean > 通过@Bean指定
出处:https://www.cnblogs.com/lucas2530/p/14973484.html
最新更新
求1000阶乘的结果末尾有多少个0
详解MyBatis延迟加载是如何实现的
IDEA 控制台中文乱码4种解决方案
SpringBoot中版本兼容性处理的实现示例
Spring的IOC解决程序耦合的实现
详解Spring多数据源如何切换
Java报错:UnsupportedOperationException in Col
使用Spring Batch实现批处理任务的详细教程
java中怎么将多个音频文件拼接合成一个
SpringBoot整合ES多个精确值查询 terms功能实
数据库审计与智能监控:从日志分析到异
SQL Server 中的数据类型隐式转换问题
SQL Server中T-SQL 数据类型转换详解
sqlserver 数据类型转换小实验
SQL Server数据类型转换方法
SQL Server 2017无法连接到服务器的问题解决
SQLServer地址搜索性能优化
Sql Server查询性能优化之不可小觑的书签查
SQL Server数据库的高性能优化经验总结
SQL SERVER性能优化综述(很好的总结,不要错
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比