七、Spring Boot启动配置原理

一、启动原理

• SpringApplication.run(主程序类)   

      – new SpringApplication(主程序类)  

            • 判断是否web应用

            • 加载并保存所有ApplicationContextInitializer(META-INF/spring.factories),

            • 加载并保存所有ApplicationListener

            • 获取到主程序类 

      – run()  

            • 回调所有的SpringApplicationRunListener(META-INF/spring.factories)的starting

            • 获取ApplicationArguments

            • 准备环境&回调所有监听器( SpringApplicationRunListener )的environmentPrepared

            • 打印banner信息

            • 创建ioc容器对象

                  – AnnotationConfigEmbeddedWebApplicationContext(web环境容器)

                  – AnnotationConfigApplicationContext(普通环境容器) 

            • 准备环境 

                  – 执行ApplicationContextInitializer. initialize()

                  – 监听器SpringApplicationRunListener回调contextPrepared

                  – 加载主配置类定义信息

                  – 监听器SpringApplicationRunListener回调contextLoaded

            • 刷新启动IOC容器;

                  – 扫描加载所有容器中的组件

                  – 包括从META-INF/spring.factories中获取的所有EnableAutoConfiguration组件 

            • 回调容器中所有的ApplicationRunner、CommandLineRunner的run方法 

            • 监听器SpringApplicationRunListener回调finished 

二、自动配置 

• Spring Boot启动扫描所有jar包的META-INF/spring.factories中配置的 EnableAutoConfiguration组件

• spring-boot-autoconfigure.jar\META-INF\spring.factories有启动时需要加载的 EnableAutoConfiguration组件配置

• 配置文件中使用debug=true可以观看到当前启用的自动配置的信息

• 自动配置会为容器中添加大量组件

• Spring Boot在做任何功能都需要从容器中获取这个功能的组件

• Spring Boot 总是遵循一个标准;容器中有我们自己配置的组件就用我们配置的,没有就用自动配 置默认注册进来的组件; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值