Spring Boot中AOP切面编程实现日志记录与方法执行时间统计.pdfVIP

  • 0
  • 0
  • 约5.91千字
  • 约 6页
  • 2026-02-01 发布于北京
  • 举报

Spring Boot中AOP切面编程实现日志记录与方法执行时间统计.pdf

Aop切面编程

参见:‑11

⚫需求:日志记录请求相关信息、记录目标方法执行时间;

ControllerAspect.java在基础包下创建aspect子包,自定义切面类ControllerAspect,添加@Aspect、@Component注解;切面类中定

义切点方法,添加@Pointcut、@Order(1)注解;切面类中定义增强方法,选择添加@Before、@Around、@After等注解,并与切点方

法绑定,注意,增强方法的参数可以是JoinPoint或其子类;

@Target(ElementType.METHOD)

@Retention(Retention.RUNTIME)

public@interfaceMyAnnotation{}

@Aspect

@Component

publicclassMyAspect{

privatefinalstaticLoggerLOGGER=LoggerFactory.getLogger(MyAspect.class);

/**

*-关联在方法上的切点,大面积切入

*-第一个*代表返回类型不限

*‑第二个*代表module下所有子包

*-第三个*代表所有类

*-第四个*代表所有方法

*(..)代表参数不限

*Order代表优先级,数字越小优先级越高

*/

@Pointcut(execution(public*com.sfac.javaSpringBoot.modu.*.controller.*.*(..))+

!execution(public*com.sfac.javaSpringBoot.modu.test.controller.*.*(..))

@Order(1)

publicvoidcontrollerPointCut(){}

//采用注解切点,精确切入@Pointcut(

@annotation(com.sfac.javaSpringBoot.aspect.MyAnnotation))@Order(1)

Aop切面编程

参见:

⚫需求:Log记录请求相关信息、记录目标方法执行时间;

⚫ControllerAspect.java

基础包下创建aspect子包,自定义切面类ControllerAspect,添加@Aspect、@Component注解;

切面类中定义切点方法,添加@Pointcut、@Order(1)注解;

切面类中定义增强方法,选择添加@Before、@Around、@After等注解,并和切点方法绑定,注意,增强方

法可配参数为JoinPoint或其子类;

@Target(ElementType.METHOD)

@Retention(Retention.RUNTIME)

public@interfaceMyAnnotation{

}

@Aspect

@Component

publicclassMyAspect{

privatefinalstaticLoggerLOGGER=LoggerFactory.getLogger(MyAspect.class);

/**

*-关联在方法上的切点,大面积额切入

*-第一个*代表返回类型不限

*-第二个*代表module下所有子包

*-第三个*代表所有类

*-第四个*代表所有方法

*(..)代表参数不限

*Order代表优先级,数字越小优先级越高

*/

@Pointcut(execution(public*com.sfac.javaSpringBoot.modu.*.controller.*.*(..))+

!execution(public*com.sfac.javaSpringBoot.modu.test.contro

文档评论(0)

1亿VIP精品文档

相关文档