spring boot运行原理
- 关于spring boot运行原理,还是需要回到@SpringBootApplication注解上,他是一个组合注解,核心功能是由@EnableAutoConfiguration注解提供的。
这里关键的是@Import注解导入的配置功能, - 分析简单的Spring Boot内置的自动配置功能:http编码配置。
常用的http编码是在web.xml文件中配置一个filter
自动配置要满足两个条件:
- 能配置CharacterEncodingFilter这个Bean。
- 能配置encoding和forceEncoding这两个参数。
配置参数
在application.properties文件中配置:
spring.http.encoding;
默认编码方式是UTF-8,若修改可用
spring,http.encoding.charset=’编码’
配置Bean
根据CharacterEncodingFilter的Bean来配置。
Spring Boot的web开发
Spring boot提供了spring-boot-starter-web为WEB开发予以支持,他提供了嵌入的tomcat和SpringMVC的依赖。
Thymeleaf模板引擎
提供了完美的Spring MVC支持。
基础知识
他是一个Java类库,可以作为MVC的web应用的View层。
可以使用Thymeleaf替代jsp
Spring Boot通过autoconfig.thymeleaf包对其进行自动配置。在application.properties文件中添加spring.thymeleaf开头来查看主要属性。Spring Boot提供的自动配置
- 自动配置的ViewResolver
(1). ContentNegotiatingViewResolver
(2). BeanNameViewResolver
IntermalResourceViewResolver - 自动配置的静态资源
在自动配置类的addResourceHandlers方法中定义了以下静态资源的自动配置。
(1). 类路径文件
将类路径下的/static,/public,/resource文件j夹直接映射成/**
(2). webjar
webjar就是将我们日常使用的脚本框架封装在jar包,可以直接访问。 - 自动配置的Formatter和Converter
只要我们定义了Converter,GenericConverter和Formatter接口的实现类Bean,这个Bean就会自动注册到SpringMVC中。 - 自动配置的HttpMessageConverters
- 自动配置的ViewResolver
- 接管Spring Boot的web位置
- 注册Servlet、Filter、Listener
- 直接注册Bean示例
@Bean
public XServlet XXServlet(){
return new XServlet;
}
@Bean
public XFilter xFilter(){
return new XFilter;
}
@Bean
public XListener XXListener(){
return new XListener;
}
2. 通过RegistrationBean示例