spring中声明式事务 配置好后,在java代码中怎么使用
spring中把需要用的事务的方法配置好,如下就是在这标签里,这些我都知道,具体配置我就不写了,直接说我困惑的问题<tx:advice></tx:advice><aop:...
spring 中把需要用的事务的方法配置好,如下就是在这标签里,这些我都知道,具体配置我就不写了,直接说我 困惑的问题
<tx:advice></tx:advice>
<aop:config></aop:config>
例如我给 insert ,update开头的方法配置了事务,这个两个方法时在同一个业务方法中调用的,如果insert 方法成功 update方法失败了,是不是都会同时回滚。如果不能回滚,我能不能在spring声明式事务中,再在java代码中编写事务,用这些类(PlatformTransationManager ,Transaction).
如果这样写的话spring声明式事务还有啥用,直接都手动编写得了。
不知道spring声明式事务的好处在哪里,它直针对一个方法默认支持事务,像上边我说 的那个问题都解决不了。
哪位大侠给指导一下,谢谢哦! 展开
<tx:advice></tx:advice>
<aop:config></aop:config>
例如我给 insert ,update开头的方法配置了事务,这个两个方法时在同一个业务方法中调用的,如果insert 方法成功 update方法失败了,是不是都会同时回滚。如果不能回滚,我能不能在spring声明式事务中,再在java代码中编写事务,用这些类(PlatformTransationManager ,Transaction).
如果这样写的话spring声明式事务还有啥用,直接都手动编写得了。
不知道spring声明式事务的好处在哪里,它直针对一个方法默认支持事务,像上边我说 的那个问题都解决不了。
哪位大侠给指导一下,谢谢哦! 展开
展开全部
spring声明式事务是在xml中,或方法的上面加注释的方式进行事务管理,这种方式的好处是程序中没有事务的具体代码,这就是非侵入式编程,这样的好处就是降低了以后维护代码的难度。
声明式事务是不只针对一个方法的事务,他有参数PROPAGATION,就是设置这个事务的范围的,当这个值是REQUIRED时,如果方法发现自己已经处在一个事务中了,就不会重新启动一个事务了。 如果是REQUIRES_NEW时,如果方法发现自己已经处在一个事务中了,会重新启动一个事务。如下:
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
声明式事务是不只针对一个方法的事务,他有参数PROPAGATION,就是设置这个事务的范围的,当这个值是REQUIRED时,如果方法发现自己已经处在一个事务中了,就不会重新启动一个事务了。 如果是REQUIRES_NEW时,如果方法发现自己已经处在一个事务中了,会重新启动一个事务。如下:
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不会同时回滚的,Spring就相当于一个横切面编程。是aop的思想。至于好处那时大大的,不用我们手动的管理session和遇见错误时手动回滚等。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实可以不用每个方法都配置的,借助其Annoation就可以啦,你说的问题应该是回滚的(默认好像是的)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询