元注解方式结合AOP记录日志信息
其中spring 的@ControllerAdvice和@RestControllerAdvice 是在ExceptionHandlerExceptionResolver类中,该类扫描了所有标注有ExceptionHandler注解的方法,并将他们存入了exceptionHandlerAdviceCache中。
在DispatcherServlet初始化的时候,会去容器中找HandlerExceptionResolver类型的类。而刚刚的ExceptionHandlerExceptionResolver类就是继承了HandlerExceptionResolver接口,所以这个地方就将他放入了DispatcherServlet中。所以上面的遍历handlerExceptionResolvers处理异常信息的地方,就是调用了ExceptionHandlerExceptionResolver的resolveException方法。所以我们进入该方法。