LMK的博客

我的学习笔记~

spring管理Struts2的action时应配置scope="prototype"

spring 默认情况下scope 是单例模式,即scope="singleton",这样只会创建一个Action对象,即每次访问都是同一个Action对象,数据不安全。而struts2 是要求 每次访问 都要求对应不同的Action, scope="prototype" 就可以保证这个要求, 当有请求的时候 都创建一个Action对象。


<span style="font-weight: normal;"><span style="font-size:14px;"><!-- 配置action -->
<bean id="testAction" class="com.lmk.test.TestAction"  scope="prototype">
	<!-- action注入  <property name="t" ref="t" />-->
</bean></span></span>




再讲得通俗一点就是如果采用单例模式,那么Struts2从前台得到的数据,经过处理结束后,再次进入该页面时,前一次提交的数据还是会被保留下来。
例如:
查询系统中的用户:当用户名a查询第一次请求结束后,再进入查询页面时,系统会保留前一次的查询条件。


当然,也可以设置scope="session",也能避免web中action的并发问题,只为当前用户创建一次bean,直至
session消失。在这种情况下,对当前用户而言,bean是有状态的。好处就是少创建bean的实例,有那么一
点点性能的提升
应用场景:
    1. 多数情况下应使用prototype
    2. 若用户不多,且频繁操作(频繁使用action),硬件一般,可以考虑session,兴许还能提升一点点性能。




阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_25281057/article/details/52385326
个人分类: struts2 java web spring
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

spring管理Struts2的action时应配置scope="prototype"

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭