基于约定优于配置的思想
- 内置tomcat服务器
- 封装Spring(底层)
核心功能:
- 起步依赖:Maven Pom(项目对象模型)传递依赖打包集成、XXXstart启动器
- 自动配置:底层会自动注入一些手动设置的配置 底层:
起步依赖(通过查看源码查看所有依赖):
web的起步依赖封装了Spring和SpringMvc所需的依赖、Tomcat的依赖
通过父工程(spring-boot-starter-parent)版本控制父工程的父工程(spring-boot-dependencies)依赖
父工程启动器里配置了部分依赖
父工程又继承依赖工程存放了依赖坐标
自动配置:
@SpringBootConfiguration中@Configuration等价于Spring配置
@EnableAutoConfiguration自动配置的核心注解(重点、核心)
@ComponentScan:组件扫描
约定:@SpringBootApplication类所在的包及其子包下的Bean都会默认被扫描
@EnableAutoConfiguration-@Import(当前配置文件引入其他配置类)@Import({AutoConfigurationImportSelector.class})-自动配置导入选择器
原理
SpringBoot启动后扫描spring.factories中XXXAutoConfiguration完成自动配置功能,导入对应的start启动器后,会自动装配 。
spring-configuration-metadata.json存放默认配置
通过配置文件覆盖配置
关于启动类SpringApplication的启动
- 通过构造函数init加载初始化 :推断是否web、加载初始化器、设置监听器、加载主类找配置类
- run方法:启动监听器、获取配置参数等等自动装配
run实质开启一个服务