博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring scope="prototype", scope="session"
阅读量:5878 次
发布时间:2019-06-19

本文共 802 字,大约阅读时间需要 2 分钟。

转自: http://www.cnblogs.com/JemBai/archive/2010/11/10/1873954.html  

 

但是对那些Dao的实现类推介scope=“singleton” ,因为这些类没有状态,用singleton只需维护一个实例,显然性能高一些。 在配置文件中,bean默认是单例模式,应用服务器启动后就会立即创建bean,以后就可以重复使用。
这带来一个问题,bean的全局变量被赋值以后,在下一次使用时会把值带过去。也就是说,bean是有状态的。
在web状态下,请求是多线程的,全局变量可能会被不同的线程修改,尤其在并发时会带来意想不到的bug。
而在开发时,访问量很小,不存在并发、多线程的问题,程序员极有可能会忽视这个问题。
所以在配置action bean时,应使用scope="prototype",为每一次request创建一个新的action实例。这 符合struts2的要求,struts2为每一个request创建一个新的action实例。当request结束,bean就会被jvm 销毁,作为垃圾收回。
当然,也可以设置scope="session",也能避免web中action的并发问题,只为当前用户创建一次bean,直至 session消失。在这种情况下,对当前用户而言,bean是有状态的。好处就是少创建bean的实例,有那么一 点点性能的提升
应用场景: 1. 多数情况下应使用prototype 2. 若用户不多,且频繁操作(频繁使用action),硬件一般,可以考虑session,兴许还能提升一点点性能。
本文转自hcy's workbench博客园博客,原文链接:http://www.cnblogs.com/alterhu/p/4470604.html
,如需转载请自行联系原作者。
你可能感兴趣的文章
11g rac ORA-01157问题处理
查看>>
国内code平台托管开源站点
查看>>
U盘的常见物理故障类型和故障表现汇总
查看>>
生产线上的nginx如何添加未编译安装模块
查看>>
面向过程与函数式编程区别的浅显理解
查看>>
你人生中的那口井挖了没有?
查看>>
“节”后余生蛇年的加班开始了
查看>>
web 客户端 移动设备 各种调试工具
查看>>
我的友情链接
查看>>
ubuntu修改IP地址和网关的方法
查看>>
mian(int argc,char *argv[])及getopt()函数
查看>>
CDN是什么作用在哪里?
查看>>
mysql数据库复制延迟参考
查看>>
我的友情链接
查看>>
Siebel SQL Performance
查看>>
ftp服务的安全
查看>>
***检测方案
查看>>
TTS
查看>>
junit4 组合测试
查看>>
Exchange 2010 CC BCC
查看>>