说在前面web
本次主要介绍springmvc配置解析。关注“天河聊架构”更多精彩。spring
springmvc配置解析架构
@EnableWebMvc这个注解干了什么,初始化defaultServletHandlerMappingmvc
进入到这个方法org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport#defaultServletHandlerMappingapp
@Bean public HandlerMapping defaultServletHandlerMapping() { // 建立DefaultServletHandlerConfigurer DefaultServletHandlerConfigurer configurer = new DefaultServletHandlerConfigurer(this.servletContext); // 配置DefaultServletHandlerConfigurer -》 configureDefaultServletHandling(configurer); // 构建HandlerMapping -》 HandlerMapping handlerMapping = configurer.buildHandlerMapping(); return (handlerMapping != null ? handlerMapping : new EmptyHandlerMapping()); }
进入到这个方法org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration#configureDefaultServletHandlingide
@Override protected void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { this.configurers.configureDefaultServletHandling(configurer); }
往上返回到这个方法org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer#buildHandlerMappingui
protected SimpleUrlHandlerMapping buildHandlerMapping() { if (this.handler == null) { return null; } // 建立SimpleUrlHandlerMapping SimpleUrlHandlerMapping handlerMapping = new SimpleUrlHandlerMapping(); handlerMapping.setUrlMap(Collections.singletonMap("/**", this.handler)); handlerMapping.setOrder(Integer.MAX_VALUE); return handlerMapping; }
往上返回到这个方法org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport#defaultServletHandlerMappingthis
说到最后源码
本次源码解析仅表明我的观点,仅供参考。servlet