最近在代码中有用上这个AOP实现日志管理,来记录一下
一:什么是AOP?
Spring Boot的AOP(Aspect Oriented Programming,面向切面编程)是一种编程思想和技术,旨在通过将应用程序的功能分割成多个独立的模块来提高代码的可维护性和可重用性。
AOP可以帮助我们跨多个类和模块提取和封装应用程序中重复的代码逻辑,例如日志记录、性能监控、安全检查等。它通过定义一个切面(Aspect),在代码中就是使用@Aspect注解,将这些横跨多个类的共同关注点(即横切关注点)从主要业务逻辑中分离出来。
在Spring Boot中,我们可以通过使用AOP注解和切点表达式来定义切面和切点。AOP注解可以在方法上标注,以指定切面的行为,例如在方法执行前后执行某些逻辑。切点表达式可以用于定义哪些方法需要被切面所拦截。
二:依赖引入
<!--Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--Aop -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
三:注解使用
-
@Aspect
:@Aspect
注解用于定义切面(Aspect),切面是横切关注点(如日志记录、性能统计)的集合。通过在类上添加@Aspect
注解,表示该类是一个切面类,可以定义一组通知(Advice)以及切点(Pointcut)来捕获并处理目标对象的方法调用。 -
@Pointcut
:@Pointcut
注解用于定义切点(Pointcut),切点用于定义在哪些连接点(Joinpoint)上应用通知。通常,切点表示一组匹配连接点的表达式。通过在方法上添加@Pointcut
注解,可以定义一个切点,然后在通知中引用该切点来确定要应用通知的连接点。 -
@Around
:@Around
注解用于定义环绕通知(Around Advice),环绕通知是一种通知类型,在目标方法执行前后、异常抛出时等都可以执行一些逻辑。通过在方法上添加@Around
注解,定义环绕通知,可以控制目标方法