对于在Spring+Struts2结合配置Action="Prototype"而言,有时候忘记了进行配置,而Spring中默认的模式为Singleton,所以导致每个Session中就会Add 一个New Action,并且会保存上次操作的记录。
其实,这也是在Struts 1 和Struts 2中不同的原因所在。在Struts 1中,所有的Action都是Singleton,并且不会存在全局变量,只是局部变量;而Struts 2中虽然是Singleton,并且存在全局变量,所以就会出现现在这种问题。
下面是一个例子代码:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/test/bean/User.hbm.xml</value>
</list>
</property>
</bean>
<bean id="userDao" class="com.test.dao.impl.UserDAOImpl" scope="singleton">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="userService" class="com.test.service.impl.UserServiceImpl">
<property name="userDao" ref="userDao"></property>
</bean>
<bean id="saveUserAction" class="com.test.action.user.SaveUserAction" scope="prototype">
<property name="service" ref="userService"></property>
</bean>
分享到:
相关推荐
总的来说,掌握Spring中的singleton和prototype两种作用域,能够帮助开发者更好地设计和实现面向服务的架构,提高代码的可重用性和可维护性。理解它们的差异,并根据具体需求选择合适的作用域,是每个Spring开发者...
Spring中的singleton和prototype的实现 Spring框架中,bean的作用域是指在容器中bean的实例化和生命周期管理。其中,singleton和prototype是两个最基本的bean作用域。本文将详细介绍Spring中的singleton和...
总结起来,Spring中的`singleton`和`prototype`作用域是管理Bean生命周期的重要手段。`singleton`提供了单例模式的实现,确保了全局唯一性,适合状态不随时间改变的对象;`prototype`则支持按需创建新实例,适用于...
在Spring框架中,Bean的两种主要作用域是Singleton和Prototype。Singleton Bean表示在整个Spring IoC容器中只有一个实例,而Prototype Bean则表示每次请求都会创建一个新的实例。这两种作用域的使用场景和实现方式都...
5. **单例模式(Singleton)**:Spring AOP中的`SingletonTargetSource`保证了每个目标对象只被创建一次,实现了单例模式,确保在整个应用程序中只有一个共享的实例存在,提高了资源利用效率。 6. **适配器模式...
Spring Bean作用域属性singleton和prototype的区别详解 Spring Framework中,Bean的作用域属性是指Bean实例的生命周期和作用域。Spring提供了五种作用域:singleton、prototype、request、session和global session...
在 Spring 中,GoF 之 factory 模式是指工厂模式、抽象工厂模式和简单工厂模式等。这些模式使得开发者可以编写更加灵活和可维护的代码。 在 Spring 中,JdbcTemplate 是框架的 JDBC 模块之一。 JdbcTemplate 提供了...
默认情况下,Spring Bean是单例(Singleton)的,但也可以设置为原型(Prototype)或其他作用域。例如,`@Scope("prototype")`表示每次请求都会创建一个新的Bean实例。 3. **@Autowired**: Spring通过此注解实现...
- **Singleton 的使用与否**:默认情况下,Bean 采用 Singleton 模式创建,但也可以配置成 Prototype 模式。 - **ApplicationContext**:这是 BeanFactory 的子接口,提供了更多的功能,如国际化支持、资源访问等...
8. **Bean的作用域**:Spring中的bean可以有多种作用域,包括单例(singleton)、原型(prototype)、请求(request)、会话(session)和全局会话(global session),每种作用域对应不同的生命周期和并发处理策略...
Singleton 作用域和 GOF 设计模式中的单例是完全不同的,单例设计模式表示一个 ClassLoader 中只有一个 class 存在,而这里的 singleton 则表示一个容器对应一个 bean,也就是说当一个 bean 被标识为 singleton 时候...
1. 创建型模式(Creational Patterns):如单例模式(Singleton)、工厂模式(Factory Method)、抽象工厂模式(Abstract Factory)、建造者模式(Builder)和原型模式(Prototype)。它们主要处理对象的创建,帮助...
在Spring框架中,注解是实现依赖注入和配置的核心机制之一。本文将深入探讨Spring注解的基本原理,包括它们如何被解析、处理以及如何影响应用程序的生命周期。 首先,我们需要了解注解在Java语言中的本质。注解是一...
12.2.2. 在Spring的application context中创建 SessionFactory 12.2.3. HibernateTemplate 12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. ...
在Spring框架中,多种设计模式被广泛应用,以支持其强大的功能和灵活的配置能力。 ##### 2. 设计模式的应用原则 - **开闭原则**(Open-Closed Principle): 强调对扩展开放、对修改封闭的原则。这意味着当我们需要...
在经典的 Java EE 开发模式中,SSH(Struts、Spring、Hibernate)框架组合中,Spring 起到了核心作用,管理着 Action、DAO 等组件,通过容器的 IOC 和 AOP 功能,实现了对象的生命周期管理和事务处理。 【Spring ...
《Java中的设计模式 - jdon》是一本深入探讨Java编程中设计模式的电子书,它主要聚焦于如何在实际开发中应用和理解这些经典的设计原则和模式。设计模式是软件工程中的一种最佳实践,它总结了在特定上下文中解决常见...
6. **作用域**:Spring Bean有多种作用域,如单例(Singleton)、原型(Prototype)、会话(Session)和请求(Request)。单例Bean在整个应用中只有一个实例,而原型Bean每次请求都会创建新的实例。 7. **AOP**:...
本文详细介绍了Spring框架中Bean的几种作用域及其配置方法,包括Singleton、Prototype、Request、Session和Global Session等。每种作用域都有其适用场景,开发者应根据具体的应用需求选择合适的作用域。合理地利用...