Spring第五弹—–配置Spring管理的bean的作用域和生命周期
2024-10-12 09:53:32
singleton (默认方式)
在每个Spring IoC容器中一个bean定义只有一个对象实例。默认情况下会在容器启动时初始化bean,但我们可以指定bean节点的lazy-init=“true”来延迟初始化bean,这时候,只有第一次获取bean会才初始化bean。如:
1
|
<bean id="xxx" class="cn.itcast.OrderServiceBean" lazy-init="true"/>
|
如果想对所有bean都应用延迟初始化,可以在根节点beans设置default-lazy-init=“true“(不推荐,不利于测试),如下:
1
|
<beans default-lazy-init="true“ ...>
|
prototype
每次从容器获取bean都是新的对象,当调用getBean方法时实例化bean对象。
1
|
<bean id="personService" class="zmc.PersonServicebean" scope="prototype"></bean>
|
以下方式为javaWeb中的作用域
.request
.session
.global session
指定Bean的初始化方法和销毁方法
1
|
<bean id="xxx" class="cn.itcast.OrderServiceBean" init-method="init" destroy-method="close"/>
|
init-method:当bean被实例化后,就会执行此方法。
Destory-method:当bean被销毁(也就是关闭Spring容器)之前,先执行此方法。
示例:
配置文件
1
|
<bean id="personService" class="zmc.PersonServicebean" destroy-method="close"></bean>
|
Bean类
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
package zmc;
import zmcjk.PersonService;
public class PersonServicebean implements PersonService {
//销毁方法
public void close(){
System.out.println("执行销毁方法");
}
}
|
测试类:
1
2
3
|
AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
ctx.close();
|
最新文章
- sublime text 如何新建,删除,重命名等问文件的快速操作
- 打开Application Data
- Linux 内核编译
- vim 显示颜色脚本
- 向量时钟Vector Clock in Riak
- iOS流量监控
- 天气api
- 数据人员Sql必会列转行
- [ html canvas putImageData ] canvas绘图属性 putImageData 属性讲解
- python自学笔记(六)二进制与位移
- Appium 的安装启动
- [译]ASP.NET Core 2.0 系列文章目录
- 系统架构以及需要导入的jar包
- activiti 动态配置 activiti 监听引擎启动和初始化(高级源码篇)
- python学习初始函数
- 消息队列queue
- error: checker javascript/jshint: can’t parse version string (abnormal termination?)”
- WPF Command CanExecute 触发一次的问题
- [转]Robotium环境搭建中的Errors running builder &#39;Android Resource Manag
- POJ1006——中国剩余定理