在使用springboot中使用AOP时需要在自己需要在方法上添加@Component 和 @Aspect 两个注解
//匹配cn.com.epicc.ecommerce.wcar.controllers包及其子包下的所有类的所有方法
@Pointcut("execution(* cn.com.controllers..*.*(..))")
public void executeService(){
}上边的方法是声明拦截某个包内的方法,
@Around("executeService()")此注解是环绕的注解,此注解方法中可以使用ProceedingJoinPoint的proceed()方法放行,如果return则停止继续执行方法。
可使用ProceedingJoinPoint的 getArgs()方法得到请求json报文。
@AfterReturning(value = "execution(* cn.com.controllers..*.*(..))",returning = "keys")
public void doAfterReturningAdvice1(JoinPoint joinPoint,Object keys)
这个方法可以在请求结束后处理报文使用,入参中的keys是方法返回值,此注解的执行顺序在@After之后。
也可使用filter拦截器方法实现,但是拦截器的入参是属于form提交,可提取request中的信息,如果是接口访问需要考虑如何获取json格式的报文。
本文介绍了在SpringBoot项目中如何使用AOP进行方法级别的增强处理。包括如何定义切入点匹配目标方法、环绕通知的实现方式及如何获取方法参数和返回值。
1102

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



