动态视觉设计网站,ps海报模板素材免费,站长工具收录查询,类似闲鱼网站怎么做环境#xff1a;springboot-2.7.5
配置文件配置静态资源映射
springboot配置静态资源映射方式是通过 WebMvcAutoConfiguration 实现的
spring:
# resources:
# # 自springboot 2.5.5之后#xff0c;该属性已经被废弃#xff0c;使用spring.web.resources.static-locat…环境springboot-2.7.5
配置文件配置静态资源映射
springboot配置静态资源映射方式是通过 WebMvcAutoConfiguration 实现的
spring:
# resources:
# # 自springboot 2.5.5之后该属性已经被废弃使用spring.web.resources.static-locations代替
# static-locations: classpath:/static/,classpath:/META-INF/resources/,classpath:/META-INF/resources/webjars/,file:E:/images/# 静态资源配置mvc:# 静态资源访问接口前缀static-path-pattern: /static/**web:resources:# 静态资源本地路径static-locations: classpath:/static/,classpath:/META-INF/resources/,classpath:/META-INF/resources/webjars/,file:E:/images/该方式仅支持一种前缀匹配spring.mvc.static-path-pattern
自定义静态资源映射
可以继承 WebMvcConfigurationSupport 或者 WebMvcConfigurer 接口。 建议 a、无须覆盖原有的静态资源实现 WebMvcConfigurer 接口 b、需要覆盖静态资源继承 WebMvcConfigurationSupport 类重写所有资源映射 注意 a、继承 WebMvcConfigurationSupport 类时WebMvcAutoConfiguration 配置 和 其他所有实现 WebMvcConfigurer 接口的的配置都失效 b、实现 WebMvcConfigurer 接口时最好通过 ResourceHandlerRegistry#hasMappingForPattern 方法判断一下否则存在多个同名前缀启动会报错 配置静态资源映射
ResourceHandlerRegistry 中 addResourceHandler 方法添加前缀匹配路径addResourceLocations 添加本地映射路径。配置之后就保存了一份列表当获取Mapping时返回 SimpleUrlHandlerMapping
配置跨域
CorsRegistry 跨域支持配置
访问静态资源过程
获取handler
DispatcherServlet#doDispatch DispatcherServlet#getHandler AbstractHandlerMapping#getHandler AbstractUrlHandlerMapping#getHandlerInternal AbstractUrlHandlerMapping#lookupHandler(java.lang.String, javax.servlet.http.HttpServletRequest)
→获取匹配的前缀路径↑ →获取目标handler↑ →目标handler添加跨域配置↑ →准备执行handler↑ 通过handler解析路径
DispatcherServlet#doDispatch HttpRequestHandlerAdapter#handle ResourceHttpRequestHandler#handleRequest PathResourceResolver#getResource(java.lang.String, javax.servlet.http.HttpServletRequest, java.util.List? extends org.springframework.core.io.Resource) FileUrlResource#createRelative UrlResource#createRelativeURL new java.net.URL#URL(java.net.URL, java.lang.String) StreamHandler#parseURL
org.springframework.http.converter.AbstractHttpMessageConverter#write
备注 java.net.URLStreamHandler#parseURL解析url时file协议的路径会截取开头到最后一个“/”位置