spring bean中scope=prototype“的作用
今天写代码时,遇到个问题,问题大概如下:在写一个新增模块,当各文本框等输入值后,提交存入数据库,跳到其它页面,当再次进入该新增页面时,上次输入的数据还存在。
经过检查发现是,spring配置文件中,配置的<bean id="pActionVO" name="pActionVO" class="com.wisdom.lxgz.purchases.model.vo.PurchasesActionVO"/>没有写 scope="prototype"。默认是singleton单列模式,每次访问时不会新建一个pActionVO,他任然会保留上次访问的过记录的信息。所以,我们在Spring配置Bean时,需要加上属性scope=”prototype”或singleton=”false”。
singleton模式指的是对某个对象的完全共享,包括代码空间和数据空间,说白了,如果一个类是singleton的,假如这个类有成员变量,那么这个成员变量的值是各个线程共享的(有点类似于static的样子了),当线程A往给变量赋了一个值以后,线程B就能读出这个值。因此,对于前台Action,肯定不能使用singleton的模式,必须是一个线程请求对应一个独立的实例。推而广之,只要是带数据成员变量的类,为了防止多个线程混用数据,就不能使用singleton。对于我们用到的Service、Dao,之所以用了singleton,就是因为他们没有用到数据成员变量,如果谁的Service需要数据成员变量,请设置singleton=false。
在新增页面,原来s:property显示的数据,要再后台取到,我是配置了s:hidden.
转载于:https://www.cnblogs.com/gexiaoshan/p/3401877.html
spring bean中scope=prototype“的作用相关推荐
- Spring Bean 的scope什么时候设置为prototype,什么时候设置为singleton
Java代码 <bean id = "testAction" class = "com.kewen.xxxAction" scope = " ...
- Spring Bean 的 scope属性为何要设置为prototype
<bean id = "testAction" class = "com.kewen.xxxAction" scope = "prototype ...
- Spring Bean 中的线程安全
在 使用Spring框架时,很多时候不知道或者忽视了多线程的问题.因为写程序时,或做单元测试时,很难有机会碰到多线程的问题,因为没有那么容易模拟多线 程测试的环境.但如果不去考虑潜在的漏洞,它就会变成 ...
- spring bean属性scope
<bean id="role" class="spring.chapter2.maryGame.Role" scope="singleton ...
- spring— Bean标签scope配置和生命周期配置
scope配置 singleton 默认值,单例的 prototype 多例的 request WEB 项目中,Spring 创建一个 Bean的对象,将对象存入到 request 域中 sessio ...
- Spring框架中@Primary注解的作用
@Primary注解 @Primary的作用就是当一个接口存在多个实现类时,我们就可以通过@Primary注解来指明哪个实现类作为首选进行自动装配注入. 如果不加@Primary注解,接口ICarSe ...
- spring配置文件中的import标签作用
多个 Spring 配置文件通过 import 方式整合的话: 配置文件会先合并,后解析,也就是说,无论是命名空间还是配置的内容,都会合并处理. 因为多个 Spring 配置文件最终会合并到一起(形成 ...
- Maven中scope标签的作用
目录 1 Maven中依赖作用的范围 2 Scope的常见取值 1 Maven中依赖作用的范围 Maven中使用scope标签来指定当前包的依赖性以及传递性,常见的可选值有:compile, prov ...
- Spring Boot中parent标签的作用
在Spring Boot的官方示例中,都是让我们继承一个spring的 spring-boot-starter-parent作为parent标签 <parent><groupId&g ...
最新文章
- JAXB 转 XML乱码
- Telnet协议详解
- 负margin的移位参考线
- Angular export class AppComponent里定义变量的实现原理
- BugkuCTF-Crypto题Crack it
- Win10用户获取最高权限的方法?
- 计算机二级office试题27答案,2017年12月计算机二级MS Office习题答案(一)
- Vue学习笔记之16-tarbar地开发思路
- 数学建模——什么是数学建模
- 商业计划书范文3000_生鲜电商商业计划书范文|优鲜选
- R语言小代码(聚类练习)
- 主引导记录(MBR)的反汇编分析
- python判断两个数据集是否存在包含关系
- java aspose 导出word_aspose.words导出html 转word文档带图片,(无网络也可以看图)
- 关于安卓视频加水印与剪辑功能实现
- L1-6 吉老师的回归 (15 分)
- 木板切割问题——贪心
- php怎么查看qq邮箱,thinkphp实现163、QQ邮箱收发邮件的方法
- 1086:角谷猜想(C C++)
- Windows_U盘_SD卡_硬盘等存储介质无法完成格式化
热门文章
- ant 编译android工程(转)
- WSUS 3.0 STEP BY STEP 配置手册
- systematic literature review how to write it?
- business man
- UNITY Destroy()和DestroyImadiate()的区别
- jmeter之调度器配置
- 写一个脚本定时自动备份mysql到指定目录
- 面向领域驱动的应用开发框架Apworks 2.5发布
- Microsoft Sync Framework 2.1 软件开发包 (SDK)
- CowNew开源-sql解析引擎和cownewsql阶段成果汇报