springmvc-源码调试-3.4-initHandlerExceptionResolvers

it2023-03-16  80

文章目录

前言initHandlerExceptionResolversExceptionHandlerExceptionResolverafterPropertiesSetResponseStatusExceptionResolverDefaultHandlerExceptionResolver后言

前言

初始化 HandlerExceptionResolvers,这里一些共同代码不分析了. 直接到创建对象… 不明确的可以看 之前的同类文章…

initHandlerExceptionResolvers

会初始化 一下三个类…

org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver,

org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver,

org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver

ExceptionHandlerExceptionResolver

主要分析 InitializingBean 和 ApplicationContextAware

如何初始化和回调了 之前文章已经 讲过了这里就不重复讲了…

afterPropertiesSet

这里代码可参考 之前文章的…

public void afterPropertiesSet() { // 主要是处理 ResponseBodyAdvice initExceptionHandlerAdviceCache(); if (this.argumentResolvers == null) { // 获取默认 List<HandlerMethodArgumentResolver> resolvers = getDefaultArgumentResolvers(); this.argumentResolvers = new HandlerMethodArgumentResolverComposite().addResolvers(resolvers); } if (this.returnValueHandlers == null) { // 获取默认 List<HandlerMethodReturnValueHandler> handlers = getDefaultReturnValueHandlers(); this.returnValueHandlers = new HandlerMethodReturnValueHandlerComposite().addHandlers(handlers); } }

ResponseStatusExceptionResolver

没啥深究的…

DefaultHandlerExceptionResolver

没啥深究的…

后言

这里的没啥深究是因为在初始化的时候并没有做什么动作… 至于用途.后面会发文出来…

最新回复(0)