SpringBoot同步笔记
环境
-
jdk 1.8
-
maven 3.6.1
-
springboot最新版2.4.0
-
IDE:IDEA
-
官网直接生成springboot项目,然后导入到IDEA(正常开发不会用)
-
IDEA新建springboot项目--File-New Project--Spring initializr
原理初探
自动配置:
pom.xml
-
spring-boot-dependencies:核心依赖在父工程中
-
在引入一些springboot依赖的时候,不需要指定版本,因为有版本仓库
启动器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
-
这个是一个web启动器
-
启动器,是springboot的启动场景
-
spring-boot-starter-web会帮我们自动导入web环境的所有依赖
-
springboot将所有的功能场景,都变成一个个启动器
-
要使用什么功能,找到对应的启动器就可以
主程序
//@SpringBootApplication:标注这个类是一个springboot应用
META-INF/spring.factories:自动配置的核心文件
结论:springboot所有自动配置都是在启动的时候扫描并加载 spring.factories(所有的自动配置类都在这里面,但是不一定会生效,要判断条件是否成立),只要导入了对应的start,就有对应的启动器,有了启动器,自动装配就会生效,然后配置成功
-
springboot在启动的时候,从类路径下/META-INF/spring.factories获取指定的值
-
将这些自动配置的类导入容器,自动配置就会生效
-
解决方案和自动配置的东西都在spring-boot-autoconfigure-2.4.0.jar下