@Transactional 是声明式事务编程中使用的注解。
事务注解会让一个方法在执行之后,哟啊么提交所有的改变,要么什么都不改变,ACID原则 (原子性,一致性,隔离性,持续性)
添加在接口的实现类上,或者接口的实现方法上。
1. 仅限于 public 方法才能生效, 这个是取决于aop的本质特性决定。
2. 数据库引擎必须支持事务(mysql5.5.5之前,数据库引擎是myisam,那么不支持事务)
3. 自我调用问题,在同一个bean中,一个正常的方法叫一个带事务注解的方法,事务是不会奏效的。,可以通过延迟注入一个相同的bean来解决这个问题