内容简介:理解SpringBoot自动配置实现
Spring Boot的主程序是一个标注了@SpringBootApplication的类,用了main方法执行了SpringApplication的run方法,这个简单的主程序将加载应用的所有的配置和资源,并且启动了一个实例。
主程序的运行过程
方法run按顺序做了以下几件事:
- 开启一个SpringApplicationRunListeners监听器
- 创建一个应用上下文ConfigurableApplicationContext
- 通过上下文加载应用所需的所有的配置和各种环境配置
- 启动一个实例
createApplicationContext方法创建了一个上下文;prepareContext方法装载上下文,它调用的load方法将调用BeanDefinitionLoader的load方法来装载应用定义的和需要的类以及各种资源;refreshContext方法调用了ApplicationContext的refresh方法重新加载了上下文;然后在afterRefresh方法中启动实例;
自动配置原理
程序的所有自动配置都是从@SpringBootApplication引入的,它主要包含了3个非常非常主要的注解,@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan。@EnableAutoConfiguration用来启动自动配置,并将导入一些自动配置的类定义;@ComponentScan将扫描和加载应用中的一些自定义的类;@SpringBootConfiguration表明一个这个类提供了Spring配置;
在@EnableAutoConfiguration类中引用了SpringFactoriesLoader,而SpringFactoriesLoader会查询META-INF/spring.factories文件中包含的JAR文件,当找到spring.factories文件后,SpringFactoriesLoader将查询配置文件命名的属性,然后进行逐个自动配置(那个文件里面各个都是配置类)。在装载一个类的配置时,首先读取项目中的配置,只有在项目中没有相关配置的时候才启用配置的默认值。
以上所述就是小编给大家介绍的《理解SpringBoot自动配置实现》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 基于SpringBoot的Environment源码理解实现分散配置
- 深入理解Laravel如何管理和配置多数据库连接的
- 【nginx网站性能优化篇(4)】理解nginx的高并发原理及其配置调优
- 理解原型其实是理解原型链
- 要理解深度学习,必须突破常规视角去理解优化
- 深入理解java虚拟机(1) -- 理解HotSpot内存区域
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Parsing Techniques
Dick Grune、Ceriel J.H. Jacobs / Springer / 2010-2-12 / USD 109.00
This second edition of Grune and Jacobs' brilliant work presents new developments and discoveries that have been made in the field. Parsing, also referred to as syntax analysis, has been and continues......一起来看看 《Parsing Techniques》 这本书的介绍吧!
Markdown 在线编辑器
Markdown 在线编辑器
HEX HSV 转换工具
HEX HSV 互换工具