`
hngmduyi
  • 浏览: 335797 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

struts2 action 配置scope="prototype"问题

 
阅读更多

最近在修改同事代码时,经常遇到莫名的问题,比如查询结果集中出现上一次请求中的脏数据,我就排查啊,总觉得是代码哪个地方写的不严谨,后来想到了,可能是action对象成单例造成的。看了下spring配置文件,果然,全部没有加 scope="prototype"。加上后,问题顺利解决。

 

ps:不写scope="prototype",默认就是单例,必然会造成脏读取数据,因为不同的线程抢相同的ACTION实例;

 prototype的话, 就是多例, spring会为每一个请求 实例化一个新的action对象;这样 每一个请求都用的是自己的action实例, 就没有共享的问题了

scope="prototype切记啊。

 

 

 

分享到:
评论

相关推荐

    struts1,struts2,webwork,线程安全问题

    Struts2框架设计时充分考虑了线程安全问题,主要体现在其默认使用“prototype”作用域来管理`Action`类实例,这意味着每次请求都会创建一个新的`Action`实例。 - **Struts2中Action实例管理机制:** - Struts2利用...

    maven3+struts2+spring+ibatis

    这个属于与Spring整合的问题,Spring容器在初始化对象的时候会根据bean的scope配置来考虑是重新建立一个对象,还是继续使用原来的对象,拿struts2的action的bean来说,如果scope这个参数没有配置,默认就是单例,即...

    struts2+hibernate+spring整合

    在Struts2的配置文件`struts.xml`中,我们需要告诉Struts2使用Spring作为其对象工厂,这样Action类实例将由Spring来创建: ```xml <constant name="struts.objectFactory" value="spring" /> ``` 然后,在`...

    Spring 和struts 整合的三种方式

    Spring的ActionSupport类是实现Struts 1或2的Action接口的一个便捷选项,它提供了一些便利的功能,如国际化支持和模型驱动。在整合过程中,我们可以创建一个继承自Spring的ActionSupport的类,然后在Spring配置文件...

    struts2+spring整合

    - 在Spring配置文件中定义Action类及其依赖,Action类通常配置为`scope="prototype"`,以确保每次请求都能获得一个新的实例。 - 在Struts2的配置文件(通常是struts.xml)中,指定`<action>`元素的`class`属性为...

    maven3.0+struts+spring+hibernate

    这个属于与Spring整合的问题,Spring容器在初始化对象的时候会根据bean的scope配置来考虑是重新建立一个对象,还是继续使用原来的对象,拿struts2的action的bean来说,如果scope这个参数没有配置,默认就是单例,即...

    图解SSH(struts2,spring,hibernate)框架配置步骤

    整合 Struts2 和 Spring 的主要目的是将 Struts2 的 Action 类交由 Spring 管理,以便实现更好的依赖注入和控制反转。以下是整合步骤: **步骤1:导入 jar 包** 在项目中引入 `struts2-spring-plugin-2.1.6.jar`,...

    Myeclipse下整合springstruts2

    <bean id="LoginAction" class="com.action.LoginAction" scope="prototype"> <property name="loginService" ref="loginService"/> ``` 这里,`LoginAction` Bean注入了`loginService`,实现了依赖注入。 7....

    spring 和Struts2整合总结

    3. **配置 Struts2**:在 struts.xml 文件中,指定 Struts2 如何找到 Action 类,同时启用 Spring 插件。 ```xml <constant name="struts.objectFactory" value="org.springframework.web.struts2....

    Struts2.X 及于spring集成的jar

    4. **Action类的编写**: 为了让Struts2能够识别并使用Spring管理的Action,Action类需要实现Spring的`org.springframework.beans.factory.BeanNameAware`接口,以便Struts2能通过bean名称找到Action。此外,Action类...

    struts2 和 spring 的项目

    在Struts2的配置中,我们需要告知Struts2使用Spring来创建和管理Action实例。这通常通过添加一个插件实现,如`struts2-spring-plugin-*.jar`。然后,在struts.xml中配置Action,使用`@SpringBean`注解来指定Spring中...

    Spring+Hibernate+Struts2整合文档

    对于每个Action,其作用域(scope)通常被设定为`prototype`,这意味着每次请求都会创建一个新的Action实例,这有助于避免线程安全问题,同时可以更好地利用Spring的依赖注入特性。例如: ```xml <action name=...

    struts2整合spring

    同时,Action类的scope应设置为`prototype`。 ```xml <bean id="LoginAction" class="yaso.struts.action.LoginAction"> <property name="loginDao" ref="LoginDao"/> ``` 在`struts.xml`中,通过指定...

    Struts2+Spring3+Hibernate3整合文档

    为了与Struts2保持一致,需要将Action的Scope设置为`prototype`或`session`。 - **`prototype`**:为每个请求创建一个新的Action实例。 - **`session`**:为每个会话创建一个新的Action实例。 示例配置如下: ```...

    struts2 整合spring 必备包 s2sh

    - **Spring 配置文件**:在 Spring 配置文件中,定义需要被 Struts2 使用的 Action 对象,使用 `scope` 属性控制bean的作用范围,通常为 `prototype` 或 `request`。 5. **Action类的配置**: - Action 类通常...

    Spring与Struts集成方式三

    1. **配置Struts 2**:确保你的项目已经正确配置了Struts 2框架,包括struts.xml配置文件、Action类和结果页面。例如,创建一个简单的HelloWorldAction,用于测试。 2. **引入Spring**:添加Spring的相关库到项目的...

    struts2.2.3+spring3.1.0+hibernate4.0整合

    整合Struts2和Spring,首先需要在Struts2的配置文件`struts.xml`中添加Spring插件,这样Struts2可以通过Spring来管理Action类。接着,将Action类声明为Spring的bean,并在Spring的配置文件`applicationContext.xml`...

    (Struts2.0 and EJB)框架配置文件

    Struts2.0和EJB(Enterprise JavaBeans)是两种在Java开发中广泛使用的框架,它们各自解决不同的问题,但可以协同工作以构建强大的企业级应用程序。Struts2.0是一个MVC(Model-View-Controller)框架,主要用于处理...

    struts2+hirbate+spring面试题

    确保Action线程安全的方法包括:声明局部变量、扩展RequestProcessor以每次创建新的Action实例,或者在Spring中使用`scope="prototype"`配置来管理Action。 2. **Struts2的MVC实现** 在Struts2中: - **Model**:...

    java ee ssh整合过程

    第一种方式简单直接,但Action实例的生命周期由Struts2控制,可能导致一些资源管理的问题。第二种方式更好地利用了Spring的依赖注入和生命周期管理,但配置相对复杂,需要确保Action的`class`属性与`@Component`注解...

Global site tag (gtag.js) - Google Analytics