首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >面试题51:请介绍一下SpringBoot的自动配置原理是什么?

面试题51:请介绍一下SpringBoot的自动配置原理是什么?

作者头像
爪哇缪斯
发布2023-05-09 21:45:24
发布2023-05-09 21:45:24
2840
举报
文章被收录于专栏:爪哇缪斯爪哇缪斯

自动配置是SpringBoot众多重要特性之一,它其实也像Starter一样,最终的目标都是为了帮开发者去摆脱原有Spring框架上使用的复杂性。而让开发者只需要关注业务逻辑开发本身。其实这也是众多开源框架都在追求的一个重要的目标。假设你使用一个全新的框架,从搭建到配置就搞了一整天,那谁还会觉得这个框架好用呢?

那我们既然谈到了SpringBoot的自动配置,我们首先需要知道的一点就是,SpringBoot自己所有的自动配置功能在spring-boot-autoconfigure包里面。

那有的同学可能就会有疑问,在项目中,我没有显示的指定依赖spring-boot-autoconfigure啊,那我的项目是不是就没有自动配置的能力呢?

如果要说明白这个问题,我们就还要再回到官方文档中去寻找答案了。在官方文档的1.5 Starters章节中,有关于50多个官方提供的Starter的简要介绍,我们发现,第一个介绍的Starter叫做spring-boot-starter,它的介绍如下图所示:

我们看到了,原来spring-boot-starter作为核心的Starter,已经包含了auto-configuration了。所以,还记得上文面试题50中,我们介绍web的Starter时,关于maven依赖的截图吗?这里我再引用一下:

我们发现,里面确实已经包含了spring-boot-autoconfiguration了。


那么,我们来看一看,这个spring-boot-autoconfiguration到底都包含了什么东西?打开它的spring.factories文件,我们发现了密密麻麻的自动配置相关的类,而这就是它所拥有的“超能力”列表:

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

关于自动配置的其他内容,我们后面会依次介绍。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 爪哇缪斯 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档