本文基于springboot
AspectJ为AOP规范提供了便捷的实施方案

依赖

  1. <dependency>
  2. <groupId>org.aspectj</groupId>
  3. <artifactId>aspectjweaver</artifactId>
  4. </dependency>

使用

概念就不介绍了,一共就六种通知,分别使用以下注解即可实现

  • @AfterThrowing
    • 抛出异常后执行
  • @AfterReturning
    • 方法返回后执行
  • @After
    • 方法结束后执行
  • @Around
    • 方法执行前后执行
  • @Before

    • 方法执行前执行 ```java @Aspect @Component public class CrudAOP {

      @Pointcut(“execution(* com.logic.transocean.service.IBaseCRUDService.query(..))”) public void beforeQuery(){}

      @Before(“beforeQuery()”) public void dealWithQueryUtil(JoinPoint joinPoint) { if (ArrayUtil.isEmpty(joinPoint.getArgs())) {

      1. log.warn("proxy error:未拿取到QueryUtil");
      2. return;

      } QueryUtil queryUtil = (QueryUtil) joinPoint.getArgs()[0]; queryUtil.convertQueryUtilToQueryWrapper(); }

} ```