读书人

Spring中的Singleton形式和Prototype模

发布时间: 2012-10-06 17:34:01 作者: rapoo

Spring中的Singleton模式和Prototype模式
对于在Spring+Struts2结合配置Action="Prototype"而言,有时候忘记了进行配置,而Spring中默认的模式为Singleton,所以导致每个Session中就会Add 一个New Action,并且会保存上次操作的记录。
其实,这也是在Struts 1 和Struts 2中不同的原因所在。在Struts 1中,所有的Action都是Singleton,并且不会存在全局变量,只是局部变量;而Struts 2中虽然是Singleton,并且存在全局变量,所以就会出现现在这种问题。
下面是一个例子代码:

<bean id="sessionFactory" 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" scope="singleton"><property name="sessionFactory"><ref bean="sessionFactory"/></property></bean><bean id="userService" ref="userDao"></property></bean><bean id="saveUserAction" scope="prototype"><property name="service" ref="userService"></property></bean>

读书人网 >软件架构设计

热点推荐