9.16周报


9.16 周报

事务

  1. @Transactional注解 实现事务控制; 默认只对runtimeException回滚,使用 rollbackfor = “Exception.class” 实现对特定异常进行回滚
  2. 事务传播行为@propagational ,【默认值】REQUIRED :需要事务,有则加入,无则创建新事务; REQUIRED_NEW: 事务之间不相互影响

AOP(面向切面编程)

使用步骤

  1. 在pom文件中导入依赖
  2. 编写程序,在程序中使用@Aspect注解

基本概念

  1. 连接点:被AOP控制的方法
  2. 通知:Advice,指重复的逻辑,也就是共性功能
  3. 切入点:PointCut,匹配连接点的条件,通知仅会在切入点方法执行时被应用
  4. 切面:Aspect,描述通知与切入点的对应关系(通知+切入点)
  5. 目标对象:Target,通知所应用的对象

通知的基本类型

  • 环绕通知(默认): @Around ,此注解标注的通知方法在目标方法前、后都被执行
  • 前置通知:@Before
  • 后置通知:@After
  • 异常通知:@AfterThrowing 抛出异常后执行通知
  • 返回后通知:@AfterReturning 此注解标注的通知方法在目标方法后被执行,有异常不会执

切入点表达式

  1. execution(访问修饰符? 返回值 包名.类名.?方法名(方法参数) throws 异常?)
  2. @annotation 使用注解匹配多个无规则的方法

AOP案例

需求

将案例中增、删、改相关接口的操作日志记录到数据库表中

步骤

  1. 新建@Mylog注解,标注在所有增删改的Controller方法上
  2. 新建数据库log表格,新建OperateLog实体类,定义Mapper和Service层接口
  3. 定义切面类

评论
评论
评论
  目录