SpringBoot的自动配置原理

Posted 小志的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot的自动配置原理相关的知识,希望对你有一定的参考价值。

一、SpringBoot自动配置的理解

  • 帮助开发者去摆脱原有Spring框架上使用的复杂性。而让开发者只需要关注业务逻辑开发本身。其实这也是众多开源框架都在追求的一个重要的目标。
  • SpringBoot的自动配置,我们首先需要知道的一点就是,SpringBoot自己所有的自动配置功能在spring-boot-autoconfigure包里面。
  • 在项目中,我们没有显示的指定依赖spring-boot-autoconfigure啊,那我的项目是不是就没有自动配置的能力呢?

二、SpringBoot的自动配置示例

1、官方文档说明

  • 在官方文档的 1.5 Starters 章节中,有关于50多个官方提供的Starter的简要介绍,我们发现,第一个介绍的Starter叫做spring-boot-starter,它的介绍如下图所示:
  • 由上图可知,spring-boot-starter作为核心的Starter,已经包含了auto-configuration了。

2、以web开发场景为例,引入web的Starter,查看spring-boot-starter-web给我们引入了什么

  • 我们发现,下图中web的Starter里面确实已经包含了spring-boot-autoconfiguration了。

三、spring-boot-autoconfiguration包含了什么

  • 打开它的spring.factories文件,我们发现了密密麻麻的自动配置相关的类,而这就是它所拥有的“超能力”列表

  • spring.factories是一个神奇的文件,SpringBoot会自动的去扫描加载每个jar包中WEB-INF目录下的spring.factories这个文件,并且读取相关的配置,然后利用反射去加载对应配置类,进行相应的环境配置和参数设置。

以上是关于SpringBoot的自动配置原理的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot05:自动配置原理

SpringBoot自动配置原理

SpringBoot自动配置原理

SpringBoot-04-自动配置原理再理解

springboot自动配置原理以及手动实现配置类

SpringBoot学习笔记——自动配置原理