由于以下原因,我问这个问题:
通常struts 2动作实例将在请求中创建。我的意思是每个请求都会创建新的动作实例。但是,如果我与spring集成,那么将只有一个动作实例将被创建(如果我错了,我不确定是否正确)。那么在这种情况下,如果我在action类中有实例变量,那该怎么办呢?第一个用户他将使用一些实例变量设置该实例,第二个用户可以设置该事件。 它现在的表现如何。
更多说明:实例变量意味着,在struts 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,但是你可以将你的行动范围改为其他类型,即。会话,应用程序等。