导包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
SpringBoot对静态资源的映射规则
WebMvcAutoConfiguration类的addResourceHandlers方法:(添加资源映射)
1.所有外部资源-- /webjars/
都去 classpath:/META-INF/resources/webjars/
找资源
webjars:以jar包的方式引入静态资源;
例如:添加jquery的webjars
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>3.4.1</version>
</dependency>
2.自定义的资源–/**
上图中添加的映射访问路径staticPathPattern值是/**
,对应的静态资源文件夹就是上面配置类ResourceProperties中的CLASSPATH_RESOURCE_LOCATIONS数组中的文件夹:
数组中的值 | 在项目中的位置 |
---|---|
classpath:/META-INF/resources/ | src/main/resources/META-INF/resources/ |
classpath:/resources/ | src/main/resources/resources/ |
classpath:/static/ | src/main/resources/static/ |
classpath:/public/ | src/main/resources/public/ |
欢迎页的页面也是/**
,因此是在上述路径的index.html。
模板引擎
常见的模板引擎有JSP、Velocity、Freemarker、Thymeleaf
SpringBoot推荐使用Thymeleaf
;
thymeleaf
SpringMVC自动配置
参考资料:SpringBoot官方文档
Spring Boot为Spring MVC提供了自动配置,可与大多数应用程序完美配合。
以下是SpringBoot对SpringMVC的默认配置
org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration
自动配置在Spring的默认值之上添加了以下功能:
- 包含
ContentNegotiatingViewResolver和BeanNameViewResolver
。–> 视图解析器 - 支持服务静态资源,包括对WebJars的支持。–> 静态资源文件夹路径
- 自动注册Converter,GenericConverter和Formatter beans。–> 转换器,格式化器
- 支持HttpMessageConverters(官方文档中有介绍)。–>
SpringMVC用来转换Http请求和响应的;User—Json; - 自动注册MessageCodesResolver(官方文档中有介绍)。–> 定义错误代码生成规则
- 静态index.html支持。–> 静态首页访问
- 定制Favicon支持(官方文档中有介绍)。–> 网站图标
- 自动使用ConfigurableWebBindingInitializerbean(官方文档中有介绍)。
1.如果您想保留 Spring Boot MVC 的功能,并且需要添加其他 MVC 配置(拦截器,格式化程序和视图控制器等):
可以添加自己的 WebMvcConfigurer
类型的 @Configuration
类,但不能带 @EnableWebMvc
注解。
2.如果您想自定义 RequestMappingHandlerMapping、RequestMappingHandlerAdapter 或者 ExceptionHandlerExceptionResolver
实例:
可以声明一个 WebMvcRegistrationsAdapter
实例来提供这些组件。
3.如果您想完全掌控 Spring MVC:
可以添加自定义注解了 @EnableWebMvc 的 @Configuration
配置类。