介绍
在 Spring Boot 中,AOP(面向切面编程)是一种强大的技术,它允许你在应用程序中横切关注点,比如日志记录、事务管理、性能监控等,从而避免重复代码和混乱 可以记录操作日志 权限控制 。
依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
运行过程
例子
监控每个方法执行的时间
@Component
@Aspect
public class TimeAspect {
//切入点表达式
@Around("execution(* com.mybatis.mybatisplusdemo.controller.*.*(..))") //需要监控哪些方法 这里表示为监控controller里的所有的类 所有的方法
public Object recordTime(ProceedingJoinPoint joinPoint) throws Throwable {
long begin =System.currentTimeMillis();
//记录方法开始的时间
Object obj=joinPoint.proceed();
//原始方法执行的返回值 需要把原始方法的结果返回给他
long end =System.currentTimeMillis()-begin;
//得到方法运行的时间
System.out.println(end);
System.out.println(joinPoint.getSignature());
//获取执行方签名 用来查看是哪个方法 格式为 “Result com.mybatis.mybatisplusdemo.controller.EmpController.search(Emp)”
return obj;
}
}
输出
11 运行时间
Result com.mybatis.mybatisplusdemo.controller.EmpController.search(Emp) 被监控的方法
11
Result com.mybatis.mybatisplusdemo.controller.EmpController.search(Emp)