@Transactional 注解参数详解
1. value/transactionManager
指定事务管理器,两者互为别名。
2. propagation(事务传播机制)
- REQUIRED:默认选项,加入现有事务或新建事务
- REQUIRES_NEW:总是新建事务,挂起现有事务
- SUPPORTS:支持当前事务,无事务也可执行
- NOT_SUPPORTED:以非事务方式执行
- MANDATORY:必须在现有事务中运行
- NEVER:不能在事务中运行
- NESTED:嵌套在现有事务中,可设置保存点实现部分回滚
3. isolation(隔离级别)
- DEFAULT:使用数据库默认级别
- READ_UNCOMMITTED:最低级别,可能出现脏读
- READ_COMMITTED:解决脏读,可能出现不可重复读和幻读
- REPEATABLE_READ:解决不可重复读,MySQL默认级别
- SERIALIZABLE:最高级别,解决所有并发问题,性能最低
4. timeout
设置事务超时时间(秒),超时自动回滚。
5. readOnly
设置只读事务,用于查询操作优化性能。
6. rollbackFor/rollbackForClassName
指定触发回滚的异常类型,默认RuntimeException和Error会回滚。
7. noRollbackFor/noRollbackForClassName
指定不触发回滚的异常类型,与rollbackFor相反。
总结
理解Spring事务管理的核心概念和实战应用技巧,对于开发可靠的数据处理流程至关重要。