AOP为Aspect Oriented Programming
Aspect:切面
OOP:面向对象编程 Object Oriented Programming
AOP的底层核心,就是Java的动态代理机制,AOP中有几个很重要的概念,整理如下表:
AOP中注解的含义
@Aspect:切面。表示一个横切进业务的一个对象。它里面包含切入点(Pointcut)和Advice(通知)。
@Pointcut:切入点。表示需要切入的位置,比如某些类或者某些方法,也就是先定一个范围。
AOP通知:
1、前置通知@Before:在方法调用之前执行
2、后置通知@AfterReturning:在方法正常调用之后执行
3、环绕通知@Around:在方法调用之前和之后,都分别可以执行的通知
4、异常通知@AfterThrowing:如果在方法调用过程中发生异常,则通知
5、最终通知
@After:在方法调用之后执行,类似于finally
其中每一个注解,都需要指定一个execution切面表达式,即该切面作用在哪一个方法之中,样例如下:
Service层是写业务逻辑,最核心的代码都在Service层,现在想知道Service层下所有的方法执行的时间,找出那些执行时间长的方法,去优化:
1、如果执行时间超过3秒,打印一个error级别的log
2、如果执行时间2-3秒,打印一个warn级别的log
3、如果执行时间小于2秒,打印一个info级别的log
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
本文介绍如何使用Spring Boot AOP实现对Service层方法执行时间的监控,通过前置、后置通知和切点表达式,实现根据不同执行时间打印不同级别的日志,如超时警告、正常运行信息和异常处理。

720

被折叠的 条评论
为什么被折叠?



