3. @Transactional注解
时间: 2024-05-28 15:07:33 浏览: 86
spring的@Transactional注解用法解读
@ Transactional 注解是 Spring 框架中的一个注解,它可以将一个方法执行过程中需要进行的数据库操作事务化,从而保证数据的一致性和完整性。当一个包含 @Transactional 注解的方法被调用时,Spring 框架会在其开始时开启一个事务,并在方法执行完成后根据事务执行情况决定是提交事务还是回滚事务。如果一个方法内嵌套了其他带 @Transactional 注解的方法,则将使用同一事务。
以下是 @Transactional 注解的一些常用属性:
- propagation: 定义事务的传播行为,例如当前方法被另一个事务的方法调用,该如何处理事务。
- isolation: 定义事务的隔离级别,例如读未提交,读已提交,可重复读和串行化。
- rollbackFor: 定义哪些异常需要回滚事务。
- noRollbackFor: 定义哪些异常不需要回滚事务。
- readOnly: 标识这个事务只读,只读事务不需要事务管理器为其开启事务。
以下是一个使用 @Transactional 注解的例子,其中 propagation 属性设置为 REQUIRES_NEW,isolation 属性设置为 SERIALIZABLE,readOnly 属性设置为 true。
```java
@Transactional(propagation = Propagation.REQUIRES_NEW, isolation = Isolation.SERIALIZABLE, readOnly = true)
public void updateUserInfo(int userId, String newUserInfo) {
// update user information in database
}
```
阅读全文