spring中声明式事务 配置好后,在java代码中怎么使用

2024-11-28 13:11:15
推荐回答(4个)
回答1:

你spring事务理解不到位,再去看下相关资料吧。
你上边所说的inerst update 只要将dao放到一个service下去管理就行 。
spring在service中事务管理,是当他调用service中的一个方法的时候 就会开启一个事务,
直到你执行完这个方法,才会commit。所以只要其中有一个失败都会回滚

回答2:

spring声明式事务是在xml中,或方法的上面加注释的方式进行事务管理,这种方式的好处是程序中没有事务的具体代码,这就是非侵入式编程,这样的好处就是降低了以后维护代码的难度。

声明式事务是不只针对一个方法的事务,他有参数PROPAGATION,就是设置这个事务的范围的,当这个值是REQUIRED时,如果方法发现自己已经处在一个事务中了,就不会重新启动一个事务了。 如果是REQUIRES_NEW时,如果方法发现自己已经处在一个事务中了,会重新启动一个事务。如下:





回答3:

不会同时回滚的,Spring就相当于一个横切面编程。是aop的思想。至于好处那时大大的,不用我们手动的管理session和遇见错误时手动回滚等。

回答4:

其实可以不用每个方法都配置的,借助其Annoation就可以啦,你说的问题应该是回滚的(默认好像是的)