spring MVC controller一个方法中多次数据操作 如何配置事务进行数据回滚
事务注解都在service层action方法中调用多个service数据操作,如何配置事务进行回滚...
事务注解都在service层 action方法中调用多个service数据操作,如何配置事务进行回滚
展开
3个回答
展开全部
直接设置下提交规则即可。
<!—XML配置声明事务范围及类型 -->
<tx:advice id=”txAdvice” transaction-manager=”txManager” >
<tx:attributes>
<tx:method name=”find*” read-only=”true”/>
<tx:method name=”add*” propagation=”REQUIRED”/>
<tx:method name=”update*” propagation=”REQUIRED”/>
<tx:method name=”delete*” propagation=”REQUIRED”/>
</tx:attributes>
</tx:advice>
<aop:config proxy-target-class=”true”>使用的是代理类,而不是代理接口
<aop:advisor advice-ref=”txAdvice” pointcut=”within(controller..*)” />指定目标组件(指定作用范围)
</aop:config>
此时如果是多个add、update、delete同时出现在一个流程里面,就会自动进行事务的一致提交或回滚。
<!—XML配置声明事务范围及类型 -->
<tx:advice id=”txAdvice” transaction-manager=”txManager” >
<tx:attributes>
<tx:method name=”find*” read-only=”true”/>
<tx:method name=”add*” propagation=”REQUIRED”/>
<tx:method name=”update*” propagation=”REQUIRED”/>
<tx:method name=”delete*” propagation=”REQUIRED”/>
</tx:attributes>
</tx:advice>
<aop:config proxy-target-class=”true”>使用的是代理类,而不是代理接口
<aop:advisor advice-ref=”txAdvice” pointcut=”within(controller..*)” />指定目标组件(指定作用范围)
</aop:config>
此时如果是多个add、update、delete同时出现在一个流程里面,就会自动进行事务的一致提交或回滚。
展开全部
<!-- 定义事务管理器(声明式的事务) -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="interceptorPointCuts" expression="execution(* com.tan.dao.*.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="interceptorPointCuts" />
</aop:config>
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="interceptorPointCuts" expression="execution(* com.tan.dao.*.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="interceptorPointCuts" />
</aop:config>
追问
注解的不可以么
追答
没用过。就这个我用过的是可行的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
springmvc是基于方法的,也就是一个方法对应一个资源,你现在子类和父类都有这个方法,而且url是一样的,那我访问这个url时,走哪个方法好呢,必然报错。你根本就不需要去继承,如果这个类需要用其他controller的方法,你直接调用不就完了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询