SpringBoot的启动流程 - 教程
SpringBoot整个启动都是通过main函数里的
SpringApplication.run 方式 所有要从这里说起
1.初始化一个SpringApplcation对象、并判断当前的应用是web应用还是说其他的一些应用
2.调用SpringApplication.run 方法 这一步做了很多事情
1)扫描配置文件,把一些配置文件还有环境变量什么的加载进来
2)注册一些监听器、监听应用的生命周期
3)初始化一个applicationcontext对象
4)加载Configuration自动配置类里面的那些bean
SpringBoot自动安装原理:
利用@EnableAutoConfiguration注解 会扫描类路径下的依赖
扫描对应的factories文件 并加载文件内的配置类(2.7之前)
2.7之后 会扫描spring/
org.springframework.boot.autoconfigure.AutoConfiguration.imports 里面的类 且不再是键值对形式在配置类内部 用condition bean等方式把starter 包里面要用到的Bean加载进环境 就搞定了自动配备
5)完成单例bean的实例化 依赖注入 和初始化 aop
web容器 会加载一个内嵌的web服务器 注册servlet什么的就是6)如果
7)执行CommandlineRunner和ApplicationRunner接口里的方法
8)发布应用启动成功事件
@SpringApplication 涵盖
@SpringBootConfiguration:
@EnableAutoConfiguration:启动自动配置机制根据工程依赖加载响应的自动配置类
@ComponentScan:自动扫描当前包及子包下的组件
浙公网安备 33010602011771号