action可否直接使用spring的声明式事务?

由于图省事,而且系统比较小,感觉service层比较繁琐,就直接在action里调用的dao
现在想使用事务 action代码大致如下
public ActionForward addOrg(
orginfoDAO.insert(orginfo);
userDAO.insert(userInfo);
}


action里有这样的两个操作,分别用两个dao去处理,我想加上事务处理,使用的spring配置好像还是1.X的(见笑)
使用HibernateTransactionManager 和TransactionProxyFactoryBean类去管理事务,在target里设置target为action的bean name
    
  <bean id="transactionManager"   
       class="org.springframework.orm.hibernate3.HibernateTransactionManager">
      <bean id="orgManagerProxy" lazy-init="true"   
         class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
            <property name="transactionManager"><ref bean="transactionManager"/>
            </property>
            <property name="transactionAttributes">
                <props>
                    <prop key="insert*">PROPAGATION_REQUIRED,-Exception</prop>
                    <prop  
                    key="add*">PROPAGATION_REQUIRED,Exception</prop>                      
                    <prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
                </props>
            </property>
             <property name="target">    
	             <ref="/userOrgManager">
            </property> 
       </bean>  

action bean定义如下
 <bean  name="/userOrgManager"
	           class="web.manager.ManagerAction">
	           <property name="baseDAO">
	             <ref local="baseDAO"/>
	           </property>
	           <property name="userDAO">
	             <ref local="userDAO"/>
	           </property> 
	           <property name="orginfoDAO">
	             <ref local="orginfoDAO"/>
	           </property>         
	    </bean>  


但是这样配置是不生效的,直接使用TransactionProxyFactoryBean去管理dao的话,只能是单个dao进入事务管理,比较郁闷,如果有service层的话,可以用action去调用包装好的带事务的service,但现在这样配置后使用action依然是没有包装过的原始action,不知道怎么配比较好,还是非得加service层呢?希望大家指教。我用编程式事务去管理是可以的,但是比较麻烦,想用直接注入实现一下。

你可能感兴趣的:(DAO,spring,AOP,bean,配置管理)