Spring事务的实现方式和实现原理(必会)
Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。真正的数据库层的事务提交和回滚是通过binlog或者redo log实现的。
spring事务实现主要有两种方法
1、编程式,beginTransaction()、commit()、rollback()等事务管理相关的方法
2、声明式,利用注解Transactional 或者aop配置
你知道的Spring的通知类型有哪些,分别在什么时候执行?(了解)
1.@Before 前置通知:表示在目标方法前增加功能
2.@AfterReturning 后置通知:表示在目标方法之后执行,能够的到目标方法的返回值
3.@Around 环绕通知:相当于动态代理InvocationHandler,
可在目标方法前后都增加功能,且能控制目标方法的访问,以及修改目标方法的返回值。
4.AfterThrowing异常通知:在目标方法抛出异常后执行,相当于try (){}cath(输出:异常……)
5.@After 最终通知:总是会被执行的代码
6.@PointCut 定义和管理切入点辅助注解
Spring的事务传播行为(高薪常问)
propagation_传播
required必须的/ 有加入,没有创建
suppor支持/ 存在就加入,没有以非事务方式执行
mandatory 强制托管/ 存在事务就加入,不存在就抛出异常
requires-new 需要新建/ 无论如何创建新的事务
not -supported不支持/ 不支持事务
never从不/ 不支持事务,若存在抛异常
nested嵌套的 当前存在事务,则在嵌套事务内执行
Spring中的隔离级别 (高薪常问)