1.微服务:一个项目可以由多个小型服务构成(微服务),SpringBoot可以快速开发微服务块。
2.springboot功能:
a:简化J2EE开发
b:整个Spring技术的栈的整合(整合SpringMVC、Spring)
c:整个J2EE技术的整合(整合mybatis、struct2、Redis)
3.目录结构resources:
static:静态资源(js、css、图片、音频、视频)
templates:模板文件(模板引擎freemaker、thymeleaf,默认不支持jsp)
application.properties:配置文件,可以修改Tomcat端口号(server.port = 端口号)
4.web程序:
执行程序,localhost:8080/helloworld -------helloworld是查看 @RequestMapping("helloword")
5.SpringBoot将各个应用/三方框架,设置成了一个“场景”starter,以后要用哪个,只需要引入哪个场景即可,选完之后,SpringBoot将会将该场景所需要的所有依赖自动注入。例如:选择web,SpringBoot就会将web相关的依赖(Tomcat、json)全部注入本项目。
6.@SpringBootApplication:SpringBoot的主配置类(不能删除该注释)
该注释包含:
①@SpringBootConfiguration:包含@Configuration,表示“配置类”:
a:该类是一个配置类
b:加了@Configuration注解的类,会自动纳入Spring容器(@Component)
②@EnableAutoConfiguration:使SpringBoot可以自动配置。(约定由于配置)可以找到@SpringBootApplication所在类的包,作用:就会将该包及所有子包全部纳入Spring容器。
7.SpringBoot在启动时,会根据META-INF/Spring.factories找到相应的三方依赖,并将这些依赖引入本项目。
8. a:编写项目的时候,一般会对自己写的代码以及三方依赖进行配置,但是SpringBoot可以自动进行配置。
i:自己写的代码,SpringBoot通过@SpringBootConfiguration自动配置。
ii:三方依赖,通过spring-boot-autoconfigure-2.0.3.RELEASE.jar中的META-INF/Spring.factories进行声明,然后开启@EnableAutoConfiguration使用即可。spring-boot-autoconfigure-2.0.3.RELEASE.jar包中,包含了J2EE整合体系中所需要的依赖。
9.SpringBoot自动装配原理:
研究org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration。
通过观察该代码,发现:①@Configuration:标识此类是一个配置类,将此类纳入 SpringIOC容器。②EnableConfigurationProperties(HttpEncodingProperties.class):通过HttpEncodingProperties将编码设置W为了UTF_8。(即自动装配为UTF_8,如何修改编码:通过HttpEncodingProperties的prefix+属性名 进行修改【配置文件中,yml/properties】)。该注解给了默认编码UTF_8,并提供了prefix+属性名 的方式供我们编码。 即:spring.http.encoding.charset = ISO-8859-1