WebMvcAutoConfiguration
AbstractUrlHandlerMapping
ResourceHttpRequestHandler
springboot 版本 2.3.9.RELEASE
一、如何用
yaml配置
spring:
mvc:
static-path-pattern: /doctest/**
resources:
static-locations: classpath:/doc/
资源文件配置
访问路径
二、原理
第一个问题,配置项,存放在哪里
配置项对应的类
WebMvcProperties
ResourceProperties
第二个问题,哪些类用到了,进而生成了哪些类
项目启动
调用链
WebMvcAutoConfiguration.resourceHandlerMapping
WebMvcConfigurationSupport.resourceHandlerMapping
EnableWebMvcConfiguration.addResourceHandlers
由上面代码可以看到 staticPathPattern,locations放到了ResourceHandlerRegistry的private final List registrations = new ArrayList<>();
WebMvcConfigurationSupport.resourceHandlerMapping
接下来看 registry.getHandleMapping
ResourceHandlerRegistry.getHandleMapping
ResourceHttpRequestHandler handler = registration.getRequestHandler();
urlMap建立pathPattern与handler的对应关系
三、请求资源时
ResourceHttpRequestHandler 拦截处理