- 0
- 0
- 约5.91千字
- 约 6页
- 2026-02-01 发布于北京
- 举报
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)