<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相关推荐

  1. spring基础——<bean>scope属性

    通过对scope属性的设置可实现单例或多例,默认不设置为单例 singleton 单例(默认值) prototype 多例 例如 <bean id="user" class= ...

  2. Spring Bean 的scope什么时候设置为prototype,什么时候设置为singleton

    Java代码   <bean id = "testAction" class = "com.kewen.xxxAction" scope = " ...

  3. Bean的scope属性

    1.singleton(默认值):单列对象,被标识为单例的对象在spring容器中只会存在一个实例 测试如下: 我们创建一个User类: public class User {private Stri ...

  4. spring bean中scope=prototype“的作用

    今天写代码时,遇到个问题,问题大概如下:在写一个新增模块,当各文本框等输入值后,提交存入数据库,跳到其它页面,当再次进入该新增页面时,上次输入的数据还存在. 经过检查发现是,spring配置文件中,配 ...

  5. Spring - bean的lazy-init属性(懒加载)

    默认情况下,容器初始化的时候便会把bean实例化,通常这样做可以让一些配置或者bean实例化的异常在容器启动的时候就发现,而不是在N久之后.但有时候,我们希望某个可能不会用到但又不是100%不用的be ...

  6. spring— Bean标签scope配置和生命周期配置

    scope配置 singleton 默认值,单例的 prototype 多例的 request WEB 项目中,Spring 创建一个 Bean的对象,将对象存入到 request 域中 sessio ...

  7. Spring scope属性详解

    scope用来声明IOC容器中的对象应该处的限定场景或者说该对象的存活空间,即在IOC容器在 对象进入相应的scope之前,生成并装配这些对象,在该对象不再处于这些scope的限定之后,容器通常会销毁 ...

  8. 【Spring源码三千问】Bean的Scope有哪些?scope=request是什么原理?

    Bean的Scope有哪些?scope=request是什么原理? 前言 版本约定 正文 Scope 接口的类图 RequestScope 在哪里注册的? Scope 在哪里生效的? scope=re ...

  9. Spring之使用注解实例化Bean并注入属性

    1.准备工作 (1)导入jar包 除了上篇文章使用到的基本jar包外,还得加入aop的jar包,所有jar包如下 所需jar包 (2)配置xml <?xml version="1.0& ...

最新文章

  1. 学习RPG Maker MZ开发创建并发布PC和移动端游戏
  2. appium ios 真机自动化环境搭建
  3. iOS 11开发教程(六)iOS11Main.storyboard文件编辑界面
  4. Linux2.6 内核进程调度分析
  5. 云计算里AWS和Azure的探究(2)
  6. 怎样复制粘贴windows命令行中的内容
  7. Binder远程转本地
  8. 女子800米跑进4分30秒才合格,茅台回应应聘者需体测...
  9. ado mfc mysql_MFC 中用ADO访问数据库
  10. C++通过文件读写保存用户注册登录信息
  11. VS2010安装部署成.NET 2.0过程的几个问题
  12. c2c网上商店管理与推广
  13. 批量发短信的平台浏览总结
  14. python-day11函数的作用
  15. C语言实现矩阵的秩求解分析
  16. 企业级带库走向大型化、智能化
  17. 群晖硬盘已损毁 Linux 修复,今天群晖存储空间损毁,起死回生
  18. 基于Matlab的图像分割----边缘检测
  19. 已知二叉树的后序序列和中序序列,求先序序列。
  20. 背包问题C/C++语言

热门文章

  1. vue引入 SuperMap 超图
  2. 使用 Processon 画图的技巧
  3. JSP企业人事档案管理系统
  4. [附源码]SSM计算机毕业设计网上书店管理系统JAVA
  5. 所见非所得: 浅析同形异义词攻击及案例分析
  6. Kali Linux安装教程(亲测)
  7. html内部阴影效果图,boxshadow内部阴影
  8. 工作流引擎 Activiti 万字详细入门
  9. 安卓项目实战之:Android常用的5种加密方式
  10. linux 内核mmap,Linux内核mmap机制