一、web自动配置规则
1、WebMvcAutoConfiguration
2、WebMvcProperties
3、ViewResolver自动配置
4、静态资源自动映射
5、Formatter与Converter自动配置
6、HttpMessageConverter自动配置
7、静态首页
8、favicon
9、错误处理
二、Thymeleaf模板引擎
Thymeleaf是一款用于渲染XML/XHTML/HTML5内容的模板引擎。类似JSP, Velocity,FreeMaker等,它也可以轻易的与Spring MVC等Web框架进行集成 作为Web应用的模板引擎。与其它模板引擎相比,Thymeleaf最大的特点是能够 直接在浏览器中打开并正确显示模板页面,而不需要启动整个Web应用。
Spring Boot推荐使用Thymeleaf、Freemarker等后现代的模板引擎技术;一但导入相 关依赖,会自动配置ThymeleafAutoConfiguration、FreeMarkerAutoConfiguration。
1、整合Thymeleaf
– 1、导入starter-thymeleaf
– 2、template文件夹下创建模板文件
– 3、测试页面&取值
– 4、基本配置
2、基本语法
• 表达式:
– #{...}:国际化消息
– ${…}:变量取值
– *{…}:当前对象/变量取值
– @{…}:url表达式
– ~{…}:片段引用
– 内置对象/共用对象:
• 判断/遍历:
– th:if
– th:unless
– th:each
– th:switch、th:case
• th:属性
三、定制web扩展配置
1、WebMvcConfigurerAdapter
Spring Boot提供了很多xxxConfigurerAdapter来定制配置
2、定制SpringMVC配置
3、@EnableWebMvc全面接管SpringMVC
4、注册view-controller、interceptor等
5、注册Interceptor
四、配置嵌入式Servlet容器
1、ConfigurableEmbeddedServletContainer
2、EmbeddedServletContainerCustomizer
3、注册Servlet、Filter、Listener
ServletRegistrationBean
FilterRegistrationBean
ServletListenerRegistrationBean
4、使用其他Servlet容器
Jetty(长连接)
Undertow(不支持JSP)
五、使用外部Servlet容器
1、 SpringBootServletInitializer
– 重写configure
2、SpringApplicationBuilder
– builder.source(@SpringBootApplication类)
3、启动原理
– Servlet3.0标准ServletContainerInitializer扫描所有jar包中METAINF/services/javax.servlet.ServletContainerInitializer文件指定的类并加载
– 加载spring web包下的SpringServletContainerInitializer
– 扫描@HandleType(WebApplicationInitializer)
– 加载SpringBootServletInitializer并运行onStartup方法
– 加载@SpringBootApplication主类,启动容器等