Spring 事务处理
前言: 事务处理的本质 在学习事务处理前,需要明确一点: 数据库操作最终都要使用到JDBC,那么无论上层如何封装,底层都是调用Connection的commit,rollback来完成 烦人的事务处理: 在日常开发中,数据访问层(DAO)必然需要进行事务的处理,但是我们会发现,事务处理的代码通常是简单的重复的,编写这样的重复代码会浪费大量的时间,所以我们需要找到一种方案可以将这些重复的代码进行抽取,以便与管理维护和复用, 我们的需求:在一系列数据库操作上的方法上增加额外的事务处理代码,让原来的方法中只关注具体的数据处理,即在原本以及存在的数据库操作方法上添加额外的事务处理逻辑 到这里你应该想到AOP了,没错! 这样的场景下AOP是最好的解决方案; 解决方案:AOP 回顾一下Spring的AOP:在结合目前的需求 1.将目标对象(DAO)放入Spring容器 2.告知Spring你的通知代码是什么(事务处理) 3.告知Spring 哪些方法(DAO的CRUD)要应用那些通知(不同的事务处理代码) 4.从Spring中获取代理对象来完成原本的CRUD,代理对象会自动完成事务处理 Spring 事务处理API Spring作为框架,需要进行详细的设计,全方位的考虑事务处理的各个方面,而不仅是简单的帮你执行commit,rollback; Spring对事务处理进行了抽象定义