Spring 中 Bean的作用域
来源:互联网 发布:战地1枪械数据 编辑:程序博客网 时间:2024/06/15 14:38
在定义配置文件的时候,用户不但可以配置Bean的属性值和相互之间的依赖关系,还可以定义Bean的作用域,作用域将对Bean的生命周期和创建方式产生影响
Bean的作用域类型如图所示
1 singleton 作用域
singleton的Bean在同一Spring容器中只有一个实例,Spring中默认的Bean的作用域为singleton,比如
<!--bean的作用域--> <bean id="car21" class="com.learn.bean.Car" scope="singleton"/> <bean id="boss12" class="com.learn.bean.Boss" p:car-ref="car21"/> <bean id="boss13" class="com.learn.bean.Boss" p:car-ref="car21"/>boss12 和boss13指向的是同一个Car实例。任何通过容器的getBean("car21")方法返回的Car实例也指向的是同一个Bean。
2 prototype 作用域
指定prototype作用域的Bean,每次通过Spring的getBean("") 方法返回的实例,都会new一个对象
<!--bean的作用域--> <bean id="car21" class="com.learn.bean.Car" scope="prototype"/> <bean id="boss12" class="com.learn.bean.Boss" p:car-ref="car21"/> <bean id="boss13" class="com.learn.bean.Boss" p:car-ref="car21"/>boss12 和boss13指向的是不同的Car实例,而且通过Spring 的getBean方法返回的也是不同的Car实例对象。
3 request,session,globalsession作用域都是继续web容器的作用域,首先需要在web容器中进行额外的配置以使Spring容器可以监听web容器的每一次http请求
在web.xml,加入如下配置
<web-app> <listener> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener></web-app>request作用域的Bean对应一个Http请求和生命周期
<!--bean的作用域--> <bean id="car21" class="com.learn.bean.Car" scope="request"/>这样,每次Http请求调用car Bean时,Spring容器都会创建一个新的car Bean,请求处理完后,就会销毁这个car Bean
session作用域的Bean,横跨整个Http Session,Session中所有的HTTP请求都共享一个Bean,当http Session结束后,实例才会被销毁
阅读全文
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的作用域
- Picasso和Glide对比(不深入)
- Failed to execute /init. Attempting defaults...
- HTML页面与基本标记
- hdu1005 Number Sequence
- Java JSON时间格式化
- Spring 中 Bean的作用域
- PHP手动注入实验
- 网购秒杀系统架构设计
- JAVA学习笔记_AMAP_拖拽选址及地理信息显示
- busybox动态编译
- Q_OBJECT类
- linux git服务器搭建,多用户协作
- 谈谈个人网站的建立(一)——建站历史和技术架构
- poj 2109