SpringBoot启动流程
2019-10-15 09:44:42 0 举报
SpringBoot启动流程
作者其他创作
大纲/内容
prepareContext()方法将listeners、environment、applicationArguments、banner等重要组件与上下文对象关联。
banner属性的设置
Spring Boot 启动流程
@EnableAutoConfiguration开启自动配置,作用就是借助@Import的支持,收集和注册特定场景相关的bean定义。关键的要属@Import(EnableAutoConfigurationImportSelector.class)借助EnableAutoConfigurationImportSelector,@EnableAutoConfiguration可以帮助SpringBoot应用将所有符合条件的@Configuration配置都加载到当前SpringBoot创建并使用的IoC容器。
Springboot启动主类注解SpringBootApplication作用
加载SpringBoot配置环境(ConfigurableEnvironment),如果是通过web容器发布,会加载StandardEnvironment。将配置环境(Environment)加入到监听器对象中(SpringApplicationRunListeners)。
SpringFactoriesLoader其主要功能就是从指定的配置文件META-INF/spring.factories加载配置将其中org.springframework.boot.autoconfigure.EnableutoConfiguration对应的配置项通过反射(Java Refletion)实例化为对应的标注了@Configuration的JavaConfig形式的IoC容器配置类,然后汇总为一个并加载到IoC容器。
SpringBootApplication这个注解上的注解:@Inherited这个注解的意思是这个注解所在的类的子类可以继承这个注解。@SpringBootConfiguration相当用使用@Configuration这个注解(使用这个注解的类相当于beans)。@ComponentScan扫描包路径。@EnableAutoConfiguration这个注解的意思是开启自动配置,作用就是借助@Import的支持,收集和注册特定场景相关的bean定义。
进入到SpringApplication的run方法第一个参数source的值是:SpringBootAnalysisApplication.class,在重载的run方法中将传入的SpringBootAnalysisApplication.class封装成了数组,也就是说我们可以调用重载的run方法,传入一个Object[]第二个参数是:一个可变参数,是我们传入的启动参数。注意点:调用run方法的时候会返回一个Spring上下文 ConfigurableApplicationContext的实例
SpringApplication初始化的时候主要做主要做三件事:1:根据classpath下是否存在(ConfigurableWebApplicationContext)判断是否要启动一个web applicationContext。2:SpringFactoriesInstances加载classpath下所有可用的ApplicationContextInitializer3:SpringFactoriesInstances加载classpath下所有可用的ApplicationListener
0 条评论
下一页