Spring Bean 的 scope属性为何要设置为prototype
<bean id = "testAction" class = "com.kewen.xxxAction" scope = "prototype"/>
Spring Bean中为何有的地方要将scope属性设为prototype?
先简单说一下两个属性值:
1.Spring中Bean的配置,如果不显式指明scope的值,那么默认为单例singleton。也就是说这个Bean只会新建一个实例。
2.设置为prototype之后,就会创建多个实例,可以理解为会new很多次。而singleton只会new一个实例
准确的说,每次spring要获取bean的时候,都会调用getBean()方法
如果这个bean是singleton,那就会取唯一的一个实例出来
如果是prototype,那么每次getBean(),都会new一个新实例
举两个简单的例子对比一下:
Class TestAction{ private int age; }
每次请求都会传age过来,如果这个Action是个单例的话,后面请求的age,就把前面的给覆盖了,所以必须设置成prototype
class TestService{ @Autowired private IUserDAO dao; }
由于它没有实例变量,所以不存在冲突的问题,用默认的单例就可以了
总结一下
1.对于有实例变量的类,要设置成prototype;没有实例变量的类,就用默认的singleton
2.Action一般我们都会设置成prototype,而Service只用singleton就可以。
Spring Bean 的 scope属性为何要设置为prototype相关推荐
- spring基础——<bean>scope属性
通过对scope属性的设置可实现单例或多例,默认不设置为单例 singleton 单例(默认值) prototype 多例 例如 <bean id="user" class= ...
- Spring Bean 的scope什么时候设置为prototype,什么时候设置为singleton
Java代码 <bean id = "testAction" class = "com.kewen.xxxAction" scope = " ...
- Bean的scope属性
1.singleton(默认值):单列对象,被标识为单例的对象在spring容器中只会存在一个实例 测试如下: 我们创建一个User类: public class User {private Stri ...
- spring bean中scope=prototype“的作用
今天写代码时,遇到个问题,问题大概如下:在写一个新增模块,当各文本框等输入值后,提交存入数据库,跳到其它页面,当再次进入该新增页面时,上次输入的数据还存在. 经过检查发现是,spring配置文件中,配 ...
- Spring - bean的lazy-init属性(懒加载)
默认情况下,容器初始化的时候便会把bean实例化,通常这样做可以让一些配置或者bean实例化的异常在容器启动的时候就发现,而不是在N久之后.但有时候,我们希望某个可能不会用到但又不是100%不用的be ...
- spring— Bean标签scope配置和生命周期配置
scope配置 singleton 默认值,单例的 prototype 多例的 request WEB 项目中,Spring 创建一个 Bean的对象,将对象存入到 request 域中 sessio ...
- Spring scope属性详解
scope用来声明IOC容器中的对象应该处的限定场景或者说该对象的存活空间,即在IOC容器在 对象进入相应的scope之前,生成并装配这些对象,在该对象不再处于这些scope的限定之后,容器通常会销毁 ...
- 【Spring源码三千问】Bean的Scope有哪些?scope=request是什么原理?
Bean的Scope有哪些?scope=request是什么原理? 前言 版本约定 正文 Scope 接口的类图 RequestScope 在哪里注册的? Scope 在哪里生效的? scope=re ...
- Spring之使用注解实例化Bean并注入属性
1.准备工作 (1)导入jar包 除了上篇文章使用到的基本jar包外,还得加入aop的jar包,所有jar包如下 所需jar包 (2)配置xml <?xml version="1.0& ...
最新文章
- 学习RPG Maker MZ开发创建并发布PC和移动端游戏
- appium ios 真机自动化环境搭建
- iOS 11开发教程(六)iOS11Main.storyboard文件编辑界面
- Linux2.6 内核进程调度分析
- 云计算里AWS和Azure的探究(2)
- 怎样复制粘贴windows命令行中的内容
- Binder远程转本地
- 女子800米跑进4分30秒才合格,茅台回应应聘者需体测...
- ado mfc mysql_MFC 中用ADO访问数据库
- C++通过文件读写保存用户注册登录信息
- VS2010安装部署成.NET 2.0过程的几个问题
- c2c网上商店管理与推广
- 批量发短信的平台浏览总结
- python-day11函数的作用
- C语言实现矩阵的秩求解分析
- 企业级带库走向大型化、智能化
- 群晖硬盘已损毁 Linux 修复,今天群晖存储空间损毁,起死回生
- 基于Matlab的图像分割----边缘检测
- 已知二叉树的后序序列和中序序列,求先序序列。
- 背包问题C/C++语言