本文基于springboot
AspectJ为AOP规范提供了便捷的实施方案
依赖
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
</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())) {
log.warn("proxy error:未拿取到QueryUtil");
return;
} QueryUtil queryUtil = (QueryUtil) joinPoint.getArgs()[0]; queryUtil.convertQueryUtilToQueryWrapper(); }
} ```