首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

SSH2集有成务配置经典解决方案和大家分享.

2012-09-19 
SSH2集成事务配置经典解决方案和大家分享..因为公司系统架构升级,有原来的struts1升级为struts2,所以很多

SSH2集成事务配置经典解决方案和大家分享..
  因为公司系统架构升级,有原来的struts1升级为struts2,所以很多原有的配置需要改变.比如事务配置,以前的事物是通过spring的拦截器实现的.
事务配置如下:
<bean id="actionTemplate" abstract="true" >
<property name="interceptorNames">
   <list>
<value>transactionInterceptor</value>
    </list>
</property>
</bean>
<bean id="transactionInterceptor" ref="transactionManager"/>
  <property name="transactionAttributes">
      <props>
        <prop key="*">PROPAGATION_REQUIRED,-Exception</prop>
      </props>
      </property>
  </bean>
transactionManager是事务管理器,我们项目用的是jta事务。
action配置如下:
<bean name="/dmFeeExpenseApplyAction" parent="actionTemplate">
<property name="target">
<bean ref="dmFeeApplyService" />

</bean>
</property>
</bean>



由于struts2  Action中属性的值是通过struts自动赋值的,而不像struts1会给你封装成一个actionForm.
用上面这种配置的话,action被代理过了,spring默认的是jdk动态代理,struts2拿到的不是原生的action对象,所以不能赋值。

所以需要改变代理方式,改为cglib代理,就可以了。
配置如下:
<bean id="actionTemplate" abstract="true" ref="transactionManager" />
<property name="proxyTargetClass" value="true"/>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED,-Exception</prop>
</props>
</property>
</bean>


action配置与上面一样.

热点排行