参考答案
结论:@Transactional基于Spring AOP和代理机制实现声明式事务。要点:1.原理:Spring容器扫描该注解,为Bean创建代理(JDK动态代理或CGLIB),在方法调用前通过TransactionInterceptor开启事务,成功后提交,异常时回滚;2.底层:PlatformTransactionManager获取数据库连接,绑定到ThreadLocal供同一线程复用;3.属性:支持传播行为、隔离级别、超时、只读等;4.注意:同类内部方法自调用不走代理导致失效;默认仅RuntimeException回滚;示例:@Transactional(propagation=Propagation.REQUIRED, isolation=Isolation.DEFAULT)。