spring + springmvc+ mybatis 怎么做,才能把事务放倒Controller层。 30
我事务已经配置好,应用在service层,也生效了,也能回滚,我现在要配置在Controller层,让Controller直接能访问数据库,异常能回滚。试了很多办法,不行...
我事务已经配置好,应用在service层 , 也生效了,也能回滚,我现在要配置在
Controller层,让Controller直接能访问数据库,异常能回滚。试了很多办法,不行,故而求教,可能不符合mvc标准什么的,,这只是一个尝试,希望知道的人,能给我解答一下,万谢! 展开
Controller层,让Controller直接能访问数据库,异常能回滚。试了很多办法,不行,故而求教,可能不符合mvc标准什么的,,这只是一个尝试,希望知道的人,能给我解答一下,万谢! 展开
展开全部
把事务放在Controller层这样做不好
如果非要这样做
最简单的方法是先在spring配置文件里加上
<tx:annotation-driven transaction-manager="transactionManager"/>
再在Controller上使用spring的事务注解
也可以用AOP方式配置事务
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!--添加方法名称正则表达式以及事务属性-->
<tx:method name="*" propagation="REQUIRED" read-only="true"/>
</tx:attributes>
</tx:advice>
<aop:config proxy-target-class="true">
<aop:pointcut
id="aspectMethods"
expression="execution(* org.xxx.controller.*.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="aspectMethods"/>
</aop:config>
更多追问追答
追问
这个 我试过了,,你就比我 多了一个 proxy-target-class="true" 我加上了 ,还是没有回滚。。。注解方式 我加载controller的方法 上 也不行。
追答
有没有其他事务控制代码?
还有就是异常不能自己捕捉,如果自己捕捉异常要手动回滚
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
请在百度搜索spring aop 事务配置
追问
我事务已经配置好,应用在service层 , 也生效了,事务能回滚,我现在要配置在
Controller层,让Controller直接能访问数据库,异常能回滚。试了很多办法,不行,故而求教,不用说 这不合理,不符合mvc标准,什么的,,这只是一个尝试,希望知道的人,能给我解答一下,谢谢!
追答
还没有尝试过..抱歉,没办法给你准确的答复.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询