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

    • HTML
    • CSS
    • Tailwind CSS (opens new window)
    • JavaScript
    • Vue3
    • 其他
  • Spring
  • SpringMVC
  • Mybatis
  • 安装教程
  • 其他教程
  • 基础
  • 虚拟化
  • Docker
  • OpenStack
  • 心情杂货
关于
收藏

周振林

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

    • HTML
    • CSS
    • Tailwind CSS (opens new window)
    • JavaScript
    • Vue3
    • 其他
  • Spring
  • SpringMVC
  • Mybatis
  • 安装教程
  • 其他教程
  • 基础
  • 虚拟化
  • Docker
  • OpenStack
  • 心情杂货
关于
收藏
  • Spring

    • 接口设计规范
    • Spring IoC
    • Spring AOP
    • SpringBoot基础
    • SpringBoot 常用注解
    • SpringBoot Conditional注解
    • SpringBoot 组件注入方式
    • SpringBoot 组件Bean生命周期
    • SpringBoot自动配置原理
      • SpringBoot自定义Starter
      • SpringBoot其他功能
      • SpringBoot JdbcTemplate
      • SpringBoot事务
      • SpringBoot文档
      • SpringBoot Starter和BOM区别
      • SpringBoot集成Modbus实现设备
      • 查询优化N+1
      • Response设置响应编码
      • Thymeleaf教程
      • Maven教程
      • Tree工具类,轻松搞定树结构
      • 项目代码组织方式
    • SpringMVC

    • Mybatis

    • 安装教程

    • 其他教程

    • 后端
    • 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/11/21, 16:34:23
    SpringBoot 组件Bean生命周期
    SpringBoot自定义Starter

    ← SpringBoot 组件Bean生命周期 SpringBoot自定义Starter→

    最近更新
    01
    查询优化N+1
    12-02
    02
    项目代码组织方式
    12-02
    03
    Mybatis分页插件
    12-02
    更多文章>
    Copyright © 2019-2025 鲁ICP备19032096号-1
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式
    ×