AOP终止原方法的执行

Spring AOP 有好几个在方法前执行的注解,如下图

image-20210121091032403

当我们需要使用AOP来判断当某些方法不符合条件的时候,我们要终止跳过该方法不去执行,可以使用@Around这个注解来做环绕切面,而其他的注解都会执行该方法体,比如某个方法只有管理员才有权限执行,而普通用户是没有权限的,这个时候就非常适用了。

具体用法看下面的伪代码图

// @Before是在方法执行前的无法终止原方法执行,你用@Around这个是环绕通知.
@Around("拦截表达式")
public Object around(ProceedingJoinPoint pjp){
   if(validation()){//你的校验成功执行方法,失败方法就不用执行了
     return pjp.proceed();
   }else{
     //可以返回你失败的信息也可以直接抛出校验失败的异常
   }
}

当然也可以使用spring的拦截器功能,将相关的校验放到拦截器里面去,只要实现spring mvc的HandlerInterceptor中的preHandle这个方法,返回false就不会调用Controller的方法了,也就是说你在这个方法里面进行校验校验成功的返回true,失败的可以跳转失败页面或者其他页面并return false


版权声明:本文为m0_38016313原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。