什么应该是由Spring管理的Struts 2的Action类豆类适当的范围是什么?

问题描述 投票:0回答:1

在Spring管理Struts 2的应用,HttpServletRequest的对象存储的Action类中的全局变量。之后做一些研究,我发现,在默认情况Struts的Action类是线程安全的,因为它们是实例为每个请求,但在上述情况下,Struts的Action类被配置为Spring bean的无(所以默认情况下,他们都在提这个bean范围单身)。我认为这是一个灾难的原因,所以我正在寻找一个修复,我发现在官方的Struts低于2 Spring集成示例如下:

<bean id="editService" class="org.apache.struts.edit.service.EditServiceInMemory"/>

<bean id="editAction" class="org.apache.struts.edit.action.EditAction" scope="prototype">

    <property name="editService" ref="editService" />

</bean>

在此范围设置为原型,但我东西的动作类需要实例化每个HTTP请求应该请求。请告诉我,我的理解是否正确,如果是正确的解决方案,比实例化的请求对象的局部变量等。

我发现在堆栈溢出以下问题,但我想在Struts 2中的条款就知道:Spring Request and Prototype Scope?

java spring struts2 thread-safety global-variables
1个回答
0
投票

这篇文章介绍了相当清楚如何两项工作:Spring Request and Prototype Scope?

我会说,如果你的应用程序只使用简单的动作,它其实并不重要,你使用。如果您使用的过滤器或支柱拦截,并希望保持在请求管道的不同步骤之间的状态,那么你必须使用请求范围豆。否则,再无所谓。

我可能会使用基于原型豆时,根据申请者不是绝对必要的。

© www.soinside.com 2019 - 2024. All rights reserved.