一、什么是事务:
狭义上的事务特指数据库事务,一方面,当多个程序并发访问数据库时,事务可以在这些应用程序之间提供一个隔离方法,以防止彼此的操作互相干扰。另一方面,事务为数据库操作提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持数据一致性的方法。
二、什么是AOP:
在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程。
AOP是Spring提供的关键特性之一。
使用AOP技术,可以将一些系统性相关的编程工作,独立提取出来,独立实现,然后通过切面切入系统(比如权限管理、事务管理、日志记录等),从而避免了在业务逻辑的代码中混入许多的系统相关的逻辑,达到了将不同的关注点分离出来的效果。
三、怎么使用AOP管理事务:
(1)使用execution扫描某个包下的所有类,设置切入点。
(2)使用advice编写通知,配置需要进行事务管理的方法名。
(3)设置切面,切面就是将切入点和通知整合。
当方法被advice拦截下来时,通知到事务管理器去开启一个事务,因为可能会有很多个方法会被拦截,所以称为切面。
四、springboot中使用事务
只需要在类或者方法上添加 @Transactional 即可,因为在spring boot中,已经默认对JPA、JDBC、mybatis开启了事务,在引入他们依赖的时候就已经默认开启了事务