美文网首页
Springboot AOP 切面

Springboot AOP 切面

作者: never_b6a7 | 来源:发表于2021-07-08 09:56 被阅读0次

1.加入依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>

2.切面文件

@Aspect
@Component
public class DemoAspect {
    private static final Logger log= LoggerFactory.getLogger(DemoAspect.class);
    //@Pointcut("execution(public * com.jackie.springbootdemo.controller.HelloController.test*(..))")
    @Pointcut("execution(public * *test(..))")
    public void addAdvice(){
        log.info("============ADD Advices============");
    }
    @Before("addAdvice()")
    public void before(JoinPoint joinPoint){
        Object[] args=joinPoint.getArgs();
       // HttpServletRequest requests=(HttpServletRequest) args[0];
        log.info("============打印日志开始============");
        if (args.length>0){
            log.info(args[0].toString());
        }
       // log.info("URL: " + args[0]);
        log.info("============打印日志结束============");
    }
}

3.对 test结尾的方法切面

@RestController
@Slf4j
public class HealthCheckController extends BaseController {
    @GetMapping(value = "/hs")
    public GenericResponse<String> hstest() {
        GenericResponse<String> resp = new GenericResponse<>();
        resp.setStatus(ResponseConstants.STATUS_SUCCESS);
        resp.setMessage("OK");
        return resp;
    }
    @GetMapping(value = "/hs/test")
    public GenericResponse<String> test(String a) {
        GenericResponse<String> resp = new GenericResponse<>();
        log.info("Input:"+a);
        resp.setStatus(ResponseConstants.STATUS_SUCCESS);
        resp.setMessage("OK");
        return resp;
    }
}

4.调用效果


image.png

相关文章

网友评论

      本文标题:Springboot AOP 切面

      本文链接:https://www.haomeiwen.com/subject/tqbzultx.html