举例说明springboot @Transactional注解的默认传播机制
时间: 2023-07-25 15:08:49 浏览: 120
好的,假设有两个方法,分别为 methodA 和 methodB。其中,methodA 使用了 @Transactional 注解,而 methodB 没有使用。
在默认情况下,@Transactional 注解的传播机制是 Propagation.REQUIRED,也就是说,如果 methodA 调用了 methodB,那么 methodB 也会加入到 methodA 的事务中,如果 methodB 抛出异常,那么 methodA 和 methodB 都会回滚。
示例代码如下:
```java
@Service
public class TransactionalDemoService {
@Autowired
private UserDao userDao;
@Transactional
public void methodA() {
// do something
methodB();
// do something
}
public void methodB() {
// do something
userDao.insertUser(new User("张三"));
// do something
throw new RuntimeException("抛出异常");
}
}
```
在上面的代码中,methodA 使用了 @Transactional 注解,而 methodB 没有使用。在 methodA 中调用了 methodB,如果 methodB 抛出异常,那么 methodA 和 methodB 都会回滚。
阅读全文