Spring 事务底层是基于 AOP 实现的核心是事务拦截器TransactionInterceptor和事务管理器PlatformTransactionManager。Spring 在创建 Bean 的过程中会通过事务相关的后置处理器判断 Bean 是否存在Transactional事务属性如果存在就为这个 Bean 创建 AOP 代理对象。当外部调用代理对象的事务方法时会先进入TransactionInterceptor由它调用事务管理器开启事务然后执行目标方法。如果目标方法正常执行完成就调用事务管理器提交事务如果发生符合回滚规则的异常就回滚事务最后释放相关资源。默认情况下RuntimeException和Error会触发事务回滚checked exception 默认不会回滚可以通过rollbackFor指定回滚异常类型。