1、数据库事务隔离级别
https://blog.csdn.net/convict_eva/article/details/53561310
2、spring 事物传播方式
https://blog.csdn.net/convict_eva/article/details/58586110
3、实现方式
动态代理
如果类的抽象接口父类,就会使用JDK动态代理实现,只有pulic 修饰的方法才能被增强。
CGLIB
如果类没有抽象接口父类,那么就使用CGLIB实现,具体是使用继承方式实现增强。
只有能被子类重写的方法才能被增强,所以private , final ,static 修饰的方法不能被增强。
4、事物嵌套
4.1 public 方法调用 private 方法,适用spring 事物的传播机制。例如:如果public 方法被事物增强,那么private 方法也运行在事物中;如果public 没有运行在事物中,那么private 方法也没有运行在事物中。
4.2 多线程的情况下调用public 方法也会被增强。
总结:
在同一个线束中相互嵌套的事务方法,处于同一个事物中。
如果相互嵌套调用的方法工作在不同的线程中,不同线程的事务方法工作在各自独立的事物中。
5、数据库连接泄漏
spring 保证了数据库连接不会泄漏。