静态资源配置解析从Servlet到springmvc到springboot的源码理解

Servlet 静态资源配置原理

最早的servlet使用servlet容器提供defaultServlet来处理静态资源

<servlet-mapping>

    <servlet-name>default</servlet-name>

    <url-pattern>*.jpg</url-pattern>

</servlet-mapping>

<servlet-mapping>

    <servlet-name>default</servlet-name>

    <url-pattern>*.js</url-pattern>

</servlet-mapping>

<servlet-mapping>

    <servlet-name>default</servlet-name>

    <url-pattern>*.css</url-pattern>

</servlet-mapping>

 

springmvc静态资源配置原理  4.3.0.RELEASE

第一种配置如下

<mvc:resources mapping="/mapper/**" location="classpath:mapper/" />

解析配置

静态资源配置解析从Servlet到springmvc到springboot的源码理解

注册SimpleUrlHandlerMapping

静态资源配置解析从Servlet到springmvc到springboot的源码理解

处理静态资源请求

静态资源配置解析从Servlet到springmvc到springboot的源码理解结果展示

 

静态资源配置解析从Servlet到springmvc到springboot的源码理解

 

第二种方式

<mvc:default-servlet-handler/>

解析

静态资源配置解析从Servlet到springmvc到springboot的源码理解

同样也会注册一个SimpleUrlHandlerMapping

静态资源配置解析从Servlet到springmvc到springboot的源码理解

使用DefaultServletHttpRequestHandler处理地址

静态资源配置解析从Servlet到springmvc到springboot的源码理解

 

Springboot 配置静态资源   1.5.14.RELEASE

 

默认配置

Spring Boot 默认将 /** 所有访问映射到以下目录:

classpath:/static

classpath:/public

classpath:/resources

classpath:/META-INF/resources

 

可以手动配置如下

在application.properties中添加配置:spring.mvc.static-path-pattern=/static/**

 

通过代码方式配置

静态资源配置解析从Servlet到springmvc到springboot的源码理解

首先启动时自动加载配置类

静态资源配置解析从Servlet到springmvc到springboot的源码理解

继承结构

静态资源配置解析从Servlet到springmvc到springboot的源码理解

调用父类的xxsupport类来进行添加资源handlers

静态资源配置解析从Servlet到springmvc到springboot的源码理解

进行聚合

静态资源配置解析从Servlet到springmvc到springboot的源码理解

添加完后进行注册

静态资源配置解析从Servlet到springmvc到springboot的源码理解

完成注册simpleUrlHandlermapping

静态资源配置解析从Servlet到springmvc到springboot的源码理解

看到日志输出

静态资源配置解析从Servlet到springmvc到springboot的源码理解