SpringBoot学习06-[SpringBoot与AOP、SpringBoot自定义starter]

admin2024-07-02  16

SpringBoot自定义starter

  • SpringBoot与AOP

SpringBoot与AOP

使用AOP实现用户接口访问日志功能

  • 添加AOP场景启动器
   <!--添加AOP场景启动器-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
  • 定义切面类
@Aspect
@Component
public class LogAspect {

    Logger log= LoggerFactory.getLogger(LogAspect.class);

    @Around("execution(* com.springboot.controller.*.*(..))&&" +
            "@annotation(apiOperation)")
    public Object around(ProceedingJoinPoint joinPoint, ApiOperation apiOperation) throws Throwable {
        StringBuilder loginfo=new StringBuilder();
        Class<?> controller = joinPoint.getThis().getClass();
        Api annotation = controller.getAnnotation(Api.class);
        if (annotation != null) {
            loginfo.append(annotation.value());
        }
        String value = apiOperation.value();
        loginfo.append(value);
        log.info("请求接口相关信息:{}",loginfo.toString());
        return joinPoint.proceed();
    }
}
  • 测试
    通过swaager进行测试
    SpringBoot学习06-[SpringBoot与AOP、SpringBoot自定义starter],在这里插入图片描述,第1张
    可以看到日志信息已经被打印
    SpringBoot学习06-[SpringBoot与AOP、SpringBoot自定义starter],在这里插入图片描述,第2张
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!