我有一个Struts 1 / Spring 2应用程序。我想知道我的Action
课程是单身人士所有会话共享,或者每个用户/会话是否获得了一个新对象Action
上课?
答案 0 :(得分:2)
我不确定Struts Action类是作为单例实现的,但我可以说框架只使用它的一个实例,并且只使用一个实例来处理所有传入的请求,必须注意不要做某事在Action类中不是线程安全的。来自javadoc:
必须以线程安全的方式对操作进行编程,因为控制器将为多个同时请求共享同一实例。这意味着您应该考虑以下项目进行设计:
编辑:
这是官方Apache Struts页面所说的内容:
Struts 1动作是单例并且必须是线程安全的,因为只有一个类的实例来处理该Action的所有请求。单例策略限制了Struts 1 Actions可以完成的任务,并且需要额外注意开发。操作资源必须是线程安全的或同步的。