spring bean标签中的init-method和destroy-method详解
1 背景介绍
在很多项目中,经常在xml配置文件中看到init-method 或者 destroy-method 。因此整理收集下,方便以后参考和学习。可以使用 init-method 和 destroy-method 在bean 配置文件属性用于在bean初始化和销毁某些动作时。这是用来替代 InitializingBean和DisposableBean接口。
init-method 用于指定bean的初始化方法。 spring 容器会帮我们实例化对象,实例化对象之后,spring就会查找我们是否配置了init-method。如果在标签配置了init-method,spring就会调用我们配置的init-method 方法,进行bean的初始化。需要注意的是,构建方法先执行,执行完后就会执行 init-method 。
2 init-method
xml配置
<bean id="testService" class="com.test.TestService" init-method="myInit" destroy-method="myDestroy"> </bean>
public class TestService { public TestService(){ System.out.println("实例化:TestService"); } public void myInit(){ System.out.println("初始化:TestService"); } public void myDestroy(){ System.out.println("销毁:TestService"); } }
测试
public class App { public static void main( String[] args ) { ConfigurableApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"applicationContext.xml"}); TestService cust = (CustomerService)context.getBean("testService"); System.out.println("hhhhh"); //context.close(); } }
输出:
实例化:TestService
初始化:TestService
hhhhh
3 destroy-method
public class App { public static void main( String[] args ) { ConfigurableApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"applicationContext.xml"}); TestService cust = (CustomerService)context.getBean("testService"); System.out.println("hhhhh"); context.close(); } }
spring上下文关闭时候,才会进行销毁。
输出:
实例化:TestService
初始化:TestService
hhhhh
销毁:TestService
4 总结
建议使用init-method 和 destroy-methodbean 在Bena配置文件,而不是执行 InitializingBean 和 DisposableBean 接口,也会造成不必要的耦合代码在Spring。
到此这篇关于spring bean标签中的init-method和destroy-method的文章就介绍到这了,更多相关spring init-method和destroy-method内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
spring boot 若依系统整合Ueditor部署时上传图片错误问题
这篇文章主要介绍了spring boot 若依系统整合Ueditor部署时上传图片错误问题,本文给大家分享问题解决方法,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-10-10Java的MyBatis框架中实现多表连接查询和查询结果分页
这篇文章主要介绍了Java的MyBatis框架中实现多表连接查询和查询结果分页,借助MyBatis框架中带有的动态SQL查询功能可以比普通SQL查询做到更多,需要的朋友可以参考下2016-04-04SpringBoot配置文件中数据库密码加密两种方案(推荐)
SpringBoot项目经常将连接数据库的密码明文放在配置文件里,安全性就比较低一些,尤其在一些企业对安全性要求很高,因此我们就考虑如何对密码进行加密,文中给大家介绍加密的两种方式,感兴趣的朋友一起看看吧2019-10-10使用 Spring Boot 2.0 + WebFlux 实现 RESTful API功能
什么是 Spring WebFlux, 它是一种异步的, 非阻塞的, 支持背压(Back pressure)机制的Web 开发框架.下面通过本文给大家介绍使用 Spring Boot 2.0 + WebFlux 实现 RESTful API功能,需要的朋友参考下吧2018-01-01Java使用get请求接收List集合数据(json)并导出报表问题
这篇文章主要介绍了Java使用get请求接收List集合数据(json)并导出报表问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-11-11
最新评论