文章

Aop 面相切面编程

AOP-面相切面编程

面向切面编程可以将交叉业务提取出来复用到核心业务逻辑中去

核心业务上线正常运行的状态下,我们都尽量面向切面编程,不动原来的逻辑

  • 代码复用性更强
  • 易于维护(一处修改,多处生效)
  • 使开发者更关注业务逻辑(因为交叉业务提取出来了,核心代码里只留业务逻辑,十分清晰)

一、注解

@Aspect: 表示这是一个切面类

类中的切点类型

  • 前置通知:@Before 目标方法执行之前的通知
  • 后置通知:@AfterReturning 目标方法执行之后的通知
  • 环绕通知:@Around 目标方法之前添加通知,同时目标方法执行之后添加通知。
  • 异常通知:@AfterThrowing 发生异常之后执行的通知
  • 最终通知:@After 放在finally语句块中的通知

二、全注解式开发

在Spring配置类上加注解:

@EnableAspectJAutoProxy(proxyTargetClass = true)

⭐️:当proxyTargetClass = true时,所有注解有Aspect的类都会被Spring创建代理对象

本文由作者按照 CC BY 4.0 进行授权