周振林 周振林
首页
  • 前端文章

    • HTML
    • CSS
    • Tailwind CSS (opens new window)
    • JavaScript
    • Vue3
    • 其他
  • 规范
  • Spring
  • 安装教程
  • 其他教程
  • 归真医学
  • 常用药材
  • 学习笔记
  • 经方学习心得
  • 基础
  • 虚拟化
  • Docker
  • OpenStack
  • 心情杂货
关于
收藏

周振林

IT界的小学生
首页
  • 前端文章

    • HTML
    • CSS
    • Tailwind CSS (opens new window)
    • JavaScript
    • Vue3
    • 其他
  • 规范
  • Spring
  • 安装教程
  • 其他教程
  • 归真医学
  • 常用药材
  • 学习笔记
  • 经方学习心得
  • 基础
  • 虚拟化
  • Docker
  • OpenStack
  • 心情杂货
关于
收藏
  • 规范

  • Spring

    • Spring介绍
    • Spring IoC
    • Spring AOP
    • SpringBoot基础
    • SpringBoot自动配置原理
      • SpringBoot其他功能
      • SpringBoot自定义Start
      • SpringBoot 常用注解
      • SpringBoot Conditional注解
      • SpringBoot 组件注入方式
      • SpringBoot 组件Bean生命周期
      • SpringBoot过滤器
      • SpringBoot拦截器
      • SpringBoot异常
      • SpringBoot事务
      • 依赖start和依赖BOM区别
      • Thymeleaf教程
      • SpringBoot集成Modbus实现设备
      • Maven教程
      • Tree工具类,轻松搞定树结构
    • 安装教程

    • 其他教程

    • 后端
    • Spring
    周振林
    2025-09-16
    目录

    SpringBoot自动配置原理

    # SpringBoot自动配置原理

    # 什么是自动配置?

    传统的 Spring 里,我们要写很多配置文件(xml 或 @Configuration),才能把数据库、Web、Redis 等功能配好。

    而 Spring Boot 的自动配置就是:

    👉 启动时自动帮你装好大部分常用的“零件”(Bean),你只要很少的配置,甚至零配置,就能直接用。

    比如:

    • 项目里有 spring-boot-starter-web → Spring Boot 自动帮你配置 Tomcat + Spring MVC
    • 项目里有数据库驱动 → Spring Boot 自动帮你配置 DataSource

    # 自动配置做了什么事

    简单来说,Spring Boot 启动时会:

    1. 程序启动:执行 SpringApplication.run()。

    2. 扫描主类:找到 @SpringBootApplication 注解。

    3. 开启自动配置:内部包含 @EnableAutoConfiguration。

    4. 导入选择器:通过 AutoConfigurationImportSelector 去加载自动配置类。

    5. 扫描 classpath(依赖库) 看你用了哪些 jar 包(比如 MySQL、Redis、Web 相关的 jar)。

    6. 读取自动配置清单 在 spring-boot-autoconfigure 里有个文件(自动配置的类清单)放在:META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports,里面写着所有可能用到的自动配置类。

    7. 条件判断 每个自动配置类都有条件(@ConditionalOnClass、@ConditionalOnMissingBean 等):

    • 你项目里有数据库驱动? → 配置 DataSource
    • 你没自己写 DataSource? → 用默认的 HikariCP
    • 你自己写了? → 优先用你的
    1. 注册 Bean 把符合条件的 Bean 丢进 Spring IoC 容器,供你直接使用。

    # 用图来看原理

    # 自动配置类工作流程

    Last Updated: 2025/10/22, 08:25:28
    SpringBoot基础
    SpringBoot其他功能

    ← SpringBoot基础 SpringBoot其他功能→

    最近更新
    01
    肺
    10-24
    02
    脾胃
    10-24
    03
    肝
    10-24
    更多文章>
    Copyright © 2019-2025 鲁ICP备19032096号-1
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式