Spring中Bean的作用域
来源:互联网 发布:郭正亮 知乎 编辑:程序博客网 时间:2024/04/30 23:01
要在XML中将bean的作用域,可以这样配置:
<bean id="bean的id" class="bean的包名.类名" scope="作用域">
Bean简介:
在spring中,那些组成你应用程序的主体(backbone)及由Spring IoC容器所管理的对象,被称之为bean。 bean就是由Spring容器初始化、装配及管理的对象,除此之外,bean就与应用程序中的其他对象没有什么区别了。 而bean定义以及bean相互间的依赖关系将通过配置元数据来描述。当通过Spring容器创建一个Bean实例时,不仅可以完成Bean实例的实例化,还可以为Bean指定特定的作用域。
Spring支持如下5种作用域:
singleton:(默认作用域)单例模式,在整个Spring IoC容器中,使用singleton定义的Bean将只有一个实例。<bean id="bean的id" class="bean的包名.类名" scope="singleton" lazy-init="true">
public class PersonService {
public PersonService() {
super();
System.out.println("被实例化");
}
public void save() {
System.out.println("save()方法");
}
}
<bean id="person" class="com.service.PersonService" scope="singleton"></bean>
再测试
@Test
public void test() {
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
PersonService us=(PersonService)ac.getBean("person");
}
默认情况下会在容器启动是初始化,
即ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");时就初始化bean,
会调用PersonService的无参构造,打印出:被实例化。
但是我们可以指定Bean节点的lazy-init="true"来初始化bean,这时,只有第一次获取bean才会初始化bean。
prototype:原型模式,每次通过容器的getBean方法获取prototype定义的Bean时,都将产生一个新的Bean实例。
request:对于每次HTTP请求,使用request定义的Bean都将产生一个新实例,即每次HTTP请求将会产生不同的Bean实例。只有在Web应用中使用Spring时,该作用域才有效。
session:对于每次HTTP Session,使用session定义的Bean都将产生一个新实例。同样只有在Web应用中使用Spring时,该作用域才有效。
globalsession:每个全局的HTTP Session,使用session定义的Bean都将产生一个新实例。典型情况下,仅在使用portlet context的时候有效。同样只有在Web应用中使用Spring时,该作用域才有效
学习笔记
0 0
- 详解Spring中bean的作用域
- spring中bean的作用域
- Spring中bean的作用域
- Spring中bean的作用域
- Spring中bean的作用域
- 详解Spring中bean的作用域
- 详解Spring中bean的作用域
- Spring中bean的作用域
- Spring中bean的作用域
- Spring中Bean的作用域
- 详解Spring中bean的作用域
- Spring中bean的作用域scope
- 详解Spring中bean的作用域
- SPRING中BEAN的作用域?
- Spring中bean的作用域
- 详解Spring中bean的作用域
- 详解Spring中bean的作用域 .
- 详解Spring中bean的作用域
- html5 中新添加的标签以及新增表单类型
- 『解决办法』UBUNTU系统中选中变成删除
- CentOS 7 安装Boost 1.61
- CSS选择器
- Struts2中常用标签
- Spring中Bean的作用域
- 第四届图灵杯程序设计竞赛
- OPENCART模板 5 折
- 有时候当我们打开excel,没有看到常规的显示工作表界面,而是只显示了用户窗体。这是怎么实现的呢?
- 嵌入式Linux环境搭建
- 二维数组排序
- armeabi-v7a armeabi arm64-v8a 参数的含义解释
- Spring Boot 定时任务的使用
- 微信小程序开发(二)