依赖引入
<!-- AOP -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
定义切面
@Component
@Aspect // 标注为切面
public class LogAspect {
private Logger logger = LoggerFactory.getLogger(this.getClass());
// 切入点表达式,表示切入点为控制器包中的所有方法
@Pointcut("within(com.design.boot.controller.*)")
public void logAspect() {
}
// 切入点之前执行
@Before("logAspect()")
public void doBefore(JoinPoint joinPoint) {
logger.info("访问时间:{}--访问接口:{}", LocalDateTime.now(), joinPoint.getSignature());
}
}
切入点表达式说明
execution( com.jiuxian..service..*(..))
- execution 表达式的主体
- 第一个* 代表任意的返回值
- com.jiuxian aop所横切的包名
- 包后面.. 表示当前包及其子包
- 第二个* 表示类名,代表所有类
- .*(..) 表示任何方法,括号代表参数 .. 表示任意参数