如果我们将struts2与spring集成,那么谁将维护动作实例,弹簧容器或struts 2容器

时间:2014-08-24 02:54:50

标签: spring struts2

由于以下原因,我问这个问题:

通常struts 2动作实例将在请求中创建。我的意思是每个请求都会创建新的动作实例。但是,如果我与spring集成,那么将只有一个动作实例将被创建(如果我错了,我不确定是否正确)。那么在这种情况下,如果我在action类中有实例变量,那该怎么办呢?第一个用户他将使用一些实例变量设置该实例,第二个用户可以设置该事件。 它现在的表现如何。

更多说明:实例变量意味着,在struts 2中,动作形式不会出现,因此,您的动作本身就是一个获取请求参数的表单。第一个用户输入内容,第二个用户输入内容,两者都设置为一个实例操作。

2 个答案:

答案 0 :(得分:1)

默认情况下,Spring会创建一个动作类的单例实例。在这种情况下,根据您的操作类的编写方式,可能存在这样的危险。

但您也可以指定原型创建bean(scope="prototype"),以便为每个请求创建一个新的类实例。

答案 1 :(得分:0)

首先,如果将struts2与spring集成,通常情况下,动作实例由spring容器管理!这是由struts2 spring插件支持的:https://struts.apache.org/release/2.3.x/docs/spring-plugin.html

其次,正如插件文档所提到的那样,默认情况下,动作bean的作用域是请求,这取决于struts2,但是你可以将你的行动范围改为其他类型,即。会话,应用程序等。