8.利用SpringAOP进行切面编程-利用SpringAOP进行切面编程(登录验证和异常统一处理)

具体做法,就是利用SpringAOP,拦截所有的需要拦截的方法(连接点)行成一个切入点(Pointcut),
然后在其前面加入通知(advice就是一些操作),比如我要登录,我的before操作就是查看是否有登录。
如果有,就继续执行方法。
如果没有,就抛出异常。然后统一拦截异常,进行处理。
 
下面的例子是,把异常统一拦截后,在后台显示。

8.利用SpringAOP进行切面编程-利用SpringAOP进行切面编程(登录验证和异常统一处理)_第1张图片

我想把异常给统一处理,不让它在前端显示。

异常统一处理(ControllerAdvice注解)

spring 3.2中,新增了@ControllerAdvice 注解,可以用于定义@ExceptionHandler@InitBinder@ModelAttribute并应用到所有@RequestMapping。参考:@ControllerAdvice 文档

 

首先加入@ControllerAdvice 注解

8.利用SpringAOP进行切面编程-利用SpringAOP进行切面编程(登录验证和异常统一处理)_第2张图片

其次要声明拦截抛出的异常类,这里我是自定义一个类SellException。然后方法返回JSON格式。@ResponseBody注解。

 

 

启动应用后,被 @ExceptionHandler@InitBinder@ModelAttribute注解的方法,都会作用在 @RequestMapping 注解的方法上。

8.利用SpringAOP进行切面编程-利用SpringAOP进行切面编程(登录验证和异常统一处理)_第3张图片

大家有没有发现异常已经被捕获统一处理了呢。

其实这就涉及到,利用Spring AOP统一处理异常了,这就是面向横向切面的编程啦哈。


你可能感兴趣的:(0.项目难点)