SpringXML方式配置bean的生命周期lifecycle
2015-08-25 17:51
531 查看
在Spring中容器在初始化某个bean的时候会有相应的生命周期,类似于Servlet,有相应的init,destory等方法例如:如下service
想让容器在初始化该bean之前调用init方法,容器销毁之后执行distory方法,可以这样配置
测试代码:
注意:这里是直接使用的applicationContext接口的实现类ClassPathXmlApplicationContext,因为下面要用到ctx.destroy()方法,这个方法在ApplicationContext接口里是没有的。打印结果:假如现在我们再获取一次userService对象呢?
此时,结果如下:从上图可以看出,此时对象是获取了两次,并且[b]这两个对象是同一个对象(因为默认的scope属性是[b]singleton)[/b],但是init和distory都是只执行了一次。[/b]假如现在我们再配置上scope=prototype之后呢?
同样的测试代码,结果如下:此时发现,现在是init了两次,也获取到两个不同的bean。但是distory却没有执行。可以看出在配置了prototype之后,ClassPathXmlApplicationContext是监控不到bean的生存和销毁的。总结:1、在bean初始化之前执行某个方法:
来自为知笔记(Wiz)
init-method
=
"init"2、在容器销毁之后执行某个方法:
destroy-method
=
"distory"
3、如果同一个bean获取多次,此时init-method和destroy-method都只执行一次(没有使用prototype情况下)
4、init-method、5、[code]init-method和destroy-method一般情况下我们开发人员很少使用,但是spring自己却需要使用。destroy-method不要和scope=prototype一起使用
比如:在Spring的连接池中就用到了destroy-method方法,不用该数据源的时候则把它关闭。
相关文章推荐
- SpringXML方式配置bean的懒加载lazy-init
- ProGuard代码混淆及Spring框架时找不到利用注解获取的bean 在ant文件中加入:
- SysLog简介和java操作实例
- java-猜数字游戏
- springMVC对异常处理的支持
- Java并发编程:volatile关键字解析(牛人还是很多的,尤其是看了诸多文档的)
- Eclipse常用快捷键
- 为什么Java字符串是不可变对象?
- JAVA学习随笔-.class
- Java解析优酷视频地址
- Java基本类型与包装类型
- Five ways to maximize Java NIO and NIO.2--转
- Jtable导入Excel数据使用poi兼容exls格式
- package用法
- Java文件下载
- Java程序执行超时——Future接口介绍
- 有关Java性能优化方面的策略和常见方法
- 一个web项目在myeclipse中add deployment时无法被识别出来的原因
- sqoop1.99.4 JAVA API操作
- Java中创建(实例化)对象的五种方式