文章预览
1.事务的几个小小例子 1.1 未添加事务,异常未回滚 1.2 添加注解事务,异常回滚 2. Transactional 2.1 注解定义 2.2 常用属性 3. 源码分析 3.1 事务简易流程图 3.2 代理类生成 3.3 代理类中方法执行入口 3.4 主要核心逻辑 总结 常见事务失效的原因及解决方案 维护公司之前的后台管理系统,在开发自测时发现mock接口失败,数据库仍插入成功。经排查发现代码中没有指定具体事务,在添加注解 @Transactional 后事务按预期生效回滚。为此,本文通过分析源码来介绍下事务失效的根源。 1.事务的几个小小例子 1.1 未添加事务,异常未回滚 代码未执行前数据库信息: @Component public class TransactionalTest { @Resource BasicPriceUploadRecordMapper basicPriceUploadRecordMapper ; public void onAddTransactionToException () { BasicPriceUploadRecord base = new BasicPrice
………………………………