事务是什么?

本文介绍了事务在数据库中的基本概念,如何在MySQL中开启、提交和回滚事务,以及在Spring框架中使用@Transactional注解进行事务管理。此外,还讲解了AOP中的概念如连接点、通知、切点表达式,以及如何配置事务传播和AOP的入门案例。
摘要由CSDN通过智能技术生成

事务是什么?在MySQL中是怎么去开启,提交,回滚事务的?

  • 事务是一组操作的集合,他是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功要么同时失败
  • 开启:begin/start transaction
  • 提交事务:commit
  • 回滚事务:rollback

在Spring中怎么管理事务,用什么注解,在哪个层次使用可以有效管理事务?

  • 注解:@Transactional
  • 位置:业务(service)层的方法上,类上,接口上
  • 作用:将当前方法交给spring进行事务管理,方法执行前,开启事务;成功执行完毕,提交事务;出现异常,回滚事务;

事务管理时规则:如果方法能够正常执行完自动提交事务,如果出现异常自动回滚事物。事务默认识别的异常是运行时异常,如果想要识别到编译时异常从而实现回滚,该怎么操作?

  • 1.在@Transactional后面加上rollback=Exception.class
  • 2.异常转换(使用方便,不至于事务失效)

事务的传播方式有哪些,含义是怎样

  • 使用propagation属性可以配置事务传播行为

 

APO叫做什么?

  • 将重复逻辑剥离出来,在不修改原始逻辑的基础上对原始功能进行增强

如果要完成一个AOP的入门案例,需要有哪些步骤?

  • 1.pom.xml引入依赖
  • 2.定义类抽取公共代码
  • 3.标记当前类是一个AOP类,并被Spring容器管理
  • 4.配置公共代码作用于哪些目标方法
  • 5.执行目标方法
  • 6.测试运行

AOP的概念理解:连接点,通知,切入点,切面 ?

  • 连接点:JoinPoint,可以被AOP控制的方法执行
  • 通知:Advice,重复逻辑代码
  • 切入点:PointCut,匹配连接点的条件
  • 切面:Aspect,通知+切点

通知有哪些类型?

  • @Around:此注解标注的通知方法在目标方法前、后都被执行(需要自己调用       ProceedingJoinPoint.proceed() 来让目标方法执行,其他通知不需要考虑目标方法执行)
  • @Before:此注解标注的通知方法在目标方法前被执行
  • @After :此注解标注的通知方法在目标方法后被执行,无论是否有异常
  • @AfterReturning : 此注解标注的通知方法在目标方法后被执行,有异常不会执行
  • @AfterThrowing : 此注解标注的通知方法发生异常后执行

如果有不同切面的通知,增强相同的方法,执行顺序是怎样的?

       当有多个切面的切点都匹配目标时,多个通知方法都会被执行:

  • 如果还有下一个通知,则调用下一个通知
  • 如果没有下一个通知,则调用目标
  • 默认按照 bean 的名称字母排序
  • @Order(数字) 加在切面类上来控制顺序
  • 目标前的通知方法:数字小先执行
  • 目标后的通知方法:数字小后执行

切点表达式有几种,具体怎么定义?

三种

  • execution(返回值类型 包名.类名.方法名(参数类型))
  • * 可以通配任意返回值类型、包名、类名、方法名、或任意类型的一个参数
  • .. 可以通配任意层级的包、或任意类型、任意个数的参数
  • @annotation() 根据注解匹配
  • args() 根据方法参数匹配

如果有多个通知的切点表达式一样,怎么抽取?

@PointCut注解,该注解的作用是将公共切入点表达式抽取出来,需要的时候引用

连接点是什么可以获取哪些信息?

  • 对于 @Around 通知,获取连接点信息只能使用 ProceedingJoinPoint
  • 对于其他四种通知,获取连接点信息只能使用 JoinPoint,它是 ProceedingJoinPoint 的父类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值