论坛首页 Java企业应用论坛

悲剧的一个BUG!STRUTS2 上传 问题。

浏览 21444 次
精华帖 (4) :: 良好帖 (0) :: 新手帖 (8) :: 隐藏帖 (18)
作者 正文
   发表时间:2011-01-28  
caoxudong818 写道
lyy3323 写道
spring 里的action 配置 相信大家基本都是配的单列。


都是singleton吗?

以前没见过,孤陋寡人了。


spring 默认是单利。。。。这里的action和structs的不是一回事。。。
0 请登录后投票
   发表时间:2011-01-28  
lyy3323 写道
Agrael 写道
是你自己弄的悲剧,struts2的action需要是prototype的。你配置成singleton的当然会保留之前的状态。验证的时候有那个Error的状态自然会错。

spring 里的action 配置 相信大家基本都是配的单列。

项目配置的问题。

我也不明白为什么把action配置成singleton有什么好处。

struts1.x中的action通常情况下,我们只会定义成员函数,不会定义成员变量,是一个无状态的类对象,也就是只有成员函数,没有成员变量,不会引起并发和线程访问问题,设置为单例,可以节省内存空间,提高执行效率,而struct2,action定义为一个普通的javaben,具有状态,如果定义成单例会引起并发和线程访问问题。当然你也可以按照struct1.x的方式来用struct2
0 请登录后投票
   发表时间:2011-01-28  
lanxia39 写道
lyy3323 写道
Agrael 写道
是你自己弄的悲剧,struts2的action需要是prototype的。你配置成singleton的当然会保留之前的状态。验证的时候有那个Error的状态自然会错。

spring 里的action 配置 相信大家基本都是配的单列。

项目配置的问题。

我也不明白为什么把action配置成singleton有什么好处。

struts1.x中的action通常情况下,我们只会定义成员函数,不会定义成员变量,是一个无状态的类对象,也就是只有成员函数,没有成员变量,不会引起并发和线程访问问题,设置为单例,可以节省内存空间,提高执行效率,而struct2,action定义为一个普通的javaben,具有状态,如果定义成单例会引起并发和线程访问问题。当然你也可以按照struct1.x的方式来用struct2

的确struts1.x 的action是默认的单列模式,参数是由request来传递,
所以在使用成语变量的时候要额外注意。

struts2.x 作为一个状态BEAN  单列确实会引发同步问题。

可惜啊 ,现在的项目大家都使用spring , 都没配置bean的状态,默认是单例~~~~
0 请登录后投票
   发表时间:2011-01-28  
lyy3323 写道
lanxia39 写道
lyy3323 写道
Agrael 写道
是你自己弄的悲剧,struts2的action需要是prototype的。你配置成singleton的当然会保留之前的状态。验证的时候有那个Error的状态自然会错。

spring 里的action 配置 相信大家基本都是配的单列。

项目配置的问题。

我也不明白为什么把action配置成singleton有什么好处。

struts1.x中的action通常情况下,我们只会定义成员函数,不会定义成员变量,是一个无状态的类对象,也就是只有成员函数,没有成员变量,不会引起并发和线程访问问题,设置为单例,可以节省内存空间,提高执行效率,而struct2,action定义为一个普通的javaben,具有状态,如果定义成单例会引起并发和线程访问问题。当然你也可以按照struct1.x的方式来用struct2

的确struts1.x 的action是默认的单列模式,参数是由request来传递,
所以在使用成语变量的时候要额外注意。

struts2.x 作为一个状态BEAN  单列确实会引发同步问题。

可惜啊 ,现在的项目大家都使用spring , 都没配置bean的状态,默认是单例~~~~


struts2的spring插件负责将struts2的Action动态的加入到Spring的beanfactory里,你可以去看一下代码被动态加入到beanfactory里的action的scope默认是prototype
0 请登录后投票
   发表时间:2011-01-28  
Struts2的设计就是多实例设计,你用了Spring来创建action对象
自然是单例,一般Spring都配置action都是多实例...
0 请登录后投票
   发表时间:2011-01-28  
如果是单例,里面所有的成员变量都是一样的,
这样会串数据...
0 请登录后投票
   发表时间:2011-01-28  
你自己是这个事件中最大的bug,
0 请登录后投票
   发表时间:2011-01-28   最后修改:2011-01-28
我见过几个项目用struts2都是让spring搞成单例,悲剧啊!

我认为JavaEE的最优思维模式:引入scope
struts1,struts2,springmvc等都是浮云,甚至包括spring
0 请登录后投票
   发表时间:2011-01-28  
.....struts2 本来的设计就是把需要展示的数据放到action 属性,必然不能用单例模式。。。
0 请登录后投票
   发表时间:2011-01-28   最后修改:2011-01-28
struts2的action不要配成单例吧?为什么要单例啊?为什么?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics