我们正在使用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;
}
}
弹簧配置
<bean name="userAction" class="com.IRXxxxAction" >
<property name="adminDAO" ref="adminDAO" />
</bean>
如果我理解正确,每个自动连线的属性都是单例,所以如果上述情况属实,那么会话映射是否会在两个同时发出的请求之间共享?
此致
AYUSH
答案 0 :(得分:6)
您在用户邮件列表中提出了相同的问题,如果您使用的是Struts2-Spring插件,请确保将bean范围设为prototype
。
Struts2在每个请求上创建新的操作实例,因为操作也作为模型工作,为了使线程安全,在每个请求上创建一个新对象并放置在值堆栈上。
不证明范围将被Spring视为singleton
并且对于永远请求将返回相同的动作实例,这可能导致从数据损坏到奇怪行为的许多问题。