Struts2和Spring集成线程安全

Coo*_*hie 2 spring struts2

我们正在使用Struts2-Spring集成,我的所有动作类都实现了SessionAware,示例代码到动作类,它们的弹簧定义如下,

public class IRXxxxAction extends ActionSupport implements SessionAware {
  private Map session;

  public String execute()
  {//}

  public void setSession(Map<String, Object> session)
  {
    this.session = session;
  }
} 
Run Code Online (Sandbox Code Playgroud)

弹簧配置

<bean name="userAction" class="com.IRXxxxAction" >
    <property name="adminDAO" ref="adminDAO" />
</bean>
Run Code Online (Sandbox Code Playgroud)

如果我理解正确,每个自动连线属性将是一个单独的,所以如果以上是真的,无论如何,会话映射是否在两个同时请求之间共享?

问候,

AYUSH

Ume*_*thi 6

你在用户邮件列表上提出了同样的问题,如果你使用的是Struts2-Spring插件,请确保将bean范围设置为prototype.

Struts2为每个请求创建新的操作实例,因为操作也作为模型工作,为了使线程安全,在每个请求上创建一个新对象并放置在值堆栈上.

不会证明范围将由Spring处理,singleton并且对于永远请求将返回相同的动作实例,这可能导致从数据损坏到奇怪行为的许多问题.