知识卡片

自动配置的推断机制

专业/工作 · 618.c

内容

自动配置并不是”魔法”,其运作机制是:在没有自定义配置的情况下,框架会检查项目当前引入了哪些依赖(即classpath上存在哪些jar包),并据此推断出该用什么组件、以什么方式初始化。例如只要依赖里声明了某个数据库驱动、且没有其他数据源被显式配置,框架就会默认把这个数据库当作数据源。这是[[约定优于配置解决的问题]]在实现层面的具体落地方式——”约定”的判断依据就是依赖清单本身。发散:这也意味着自动配置的行为高度依赖于依赖版本和组合,同样的代码换一套依赖版本可能触发完全不同的默认配置,这是这类”隐式推断”机制通用的可预测性代价。

参考来源

《Spring Boot应用开发实战》第1章《Spring Boot基础知识》