Struts2-扩展动作类和线程安全

Struts2-扩展动作类和线程安全,struts2,Struts2,我知道action类上的实例变量是线程安全的,因为action类是按请求实例化的。但是我需要扩展action类,我担心线程的安全性 比如说,我有一些公共属性和几个操作类中处理这些属性的方法。我更喜欢将它们放在单个action类中,并使其扩展ActionSupport。然后所有动作类都将扩展我刚刚创建的基本动作类。我的问题是,基本操作类上的实例变量是线程安全的吗?S2是否管理基本动作类 还有,是什么使一个动作类成为一个动作类,由S2管理并根据请求实例化?正在struts.xml中声明?扩展Acti

我知道action类上的实例变量是线程安全的,因为action类是按请求实例化的。但是我需要扩展action类,我担心线程的安全性

比如说,我有一些公共属性和几个操作类中处理这些属性的方法。我更喜欢将它们放在单个action类中,并使其扩展
ActionSupport
。然后所有动作类都将扩展我刚刚创建的基本动作类。我的问题是,基本操作类上的实例变量是线程安全的吗?S2是否管理基本动作类


还有,是什么使一个动作类成为一个动作类,由S2管理并根据请求实例化?正在
struts.xml
中声明?扩展
ActionSupport
类?

我认为您对Java的工作原理有点困惑。 如果您有一个类
a
,而一个类
B扩展了a
,那么当您实例化
B
时,就会有一个
B
。这并不是说有一个
a
实例支持
B
的所有实例。没有“基类管理”

通过XML、注释或约定声明为动作的类由Struts动作实例化机制实例化。扩展
ActionSupport
几乎与之无关,它唯一可能与之相关的时间是因为
ActionSupport
实现了
Action
接口

还有,是什么使一个动作类成为一个动作类,由S2管理并根据请求实例化在struts.xml中声明?扩展ActionSupport类

struts.xml
中声明:是的,这将Java类转化为动作

每个Action类都是线程安全的,因为它是ThreadLocal,无论它扩展或实现了什么。每个用户的每个请求都有自己的每个操作类的副本


注意:其他类(未在
struts.xml
中声明)不是“(action类)不由S2管理并按请求实例化”,它们根本不是Actions。

在这种情况下,我需要基本action类(不会在struts xml中声明)以及每个请求实例化一次,这就是为什么我问它是否由S2管理。为什么是否决票?我猜那个仇恨者还在外面+1@mystarrocks没关系,我知道是谁。@DaveNewton,你能告诉我是谁吗?从今天起,他也随机否决了我的一些答案:)如果基类包含静态对象,是否存在线程安全问题?只是好奇。。。顺便说一句,我给了你一票@如果对Sumit静态变量的访问不同步,并且依赖于绝对完整性,那么Sumit静态变量总是会导致线程问题。如果你只是在读书,这不是问题。