济南网站设计公司富,华为云网站建设怎么设置选择项,网站流量 名词,推广普通话手抄报内容文字SpringBoot的启动入口就是一个非常简单的run方法#xff0c;这个run方法会加载一个应用所需要的所有资源和配置#xff0c;最后启动应用。通过查看run方法的源码#xff0c;我们发现#xff0c;run方法首先启动了一个监听器#xff0c;然后创建了一个应用上下文Configurab… SpringBoot的启动入口就是一个非常简单的run方法这个run方法会加载一个应用所需要的所有资源和配置最后启动应用。 通过查看run方法的源码我们发现run方法首先启动了一个监听器然后创建了一个应用上下文ConfigurableApplicationContext我们知道context就是用来加载各种bean和环境配置等信息。 在context的初始化过程中会调用一个load方法将我们的启动类当做参数(sources)传进去这个方法的主要作用就是加载应用所需的各种bean和资源配置。 load方法会创建一个BeanDefinitionLoader由BeanDefinitionLoader的loader方法来执行具体的加载。 BeanDefinitionLoader的load方法根据所传入的不同source类型来选择不同的加载方式前面说到这整个过程之中source里面就只有启动类这一个对象所以这里就将其强转成Class并加载。 加载Class的方法里面调用了一个isComponent(Class type)方法这个方法便是用来判断加载的类上有没有注解的如果有就要开始解析注解了。 如此一来启动类上的SpringBootApplication注解就会被调用这个注解是实现SpringBoot自动配置功能的关键所在。 查看SpringBootApplication的源码我们发现它实际上是SpringBootConfiguration、EnableAutoConfiguration、ComponentScan三个注解的合集。其中EnableAutoConfiguration是启用自动配置的并将导入一些自动配置的类定义ComponentScan用来加载应用中一些自定义的类。 EnableAutoConfiguration最终会导入一个自动配置的类列表这些类大多数都处于备用状态。这边是SpringBoot自动配置的秘密它已经把你可能要用到的东西全都准备好了一旦你引入了相关的jar包对应的功能就会被启用应用启动时程序就会读取相关的配置信息。程序首先会尝试到配置文件中读取相关的配置信息如果配置文件中没有那么就会启用配置的默认值。