Bohr-L Bohr-L
首页
技术
常见面试题
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

刘博

I'm a slow walker, But I never walk backwards.
首页
技术
常见面试题
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 数据处理与存储类

  • Spring 生态类

    • SpringBoot 自动装配的原理
      • SpringMVC 的优点和缺点
      • Spring AOP 在什么场景下会失效?
      • Spring 是如何管理事务的,事务管理机制
      • 声明式事务的实现原理(AOP)
    • 缓存问题类

    • 多线程类

    • JVM 类

    • MySQL 类

    • Java 8 + 特性类

    • 其他技术类

    • 常见面试题
    • Spring 生态类
    刘博
    2025-12-28
    目录

    SpringBoot 自动装配的原理

    SpringBoot 自动装配的核心是 “约定优于配置”,通过注解和 SPI(服务提供者接口)机制,自动完成 Bean 的注册和配置,无需手动编写 XML 或@Bean注解,原理分 3 步:

    • 1. 启动类注解触发自动装配:启动类上的@SpringBootApplication是复合注解,其中@EnableAutoConfiguration是自动装配的 “开关”。
    • 2. @EnableAutoConfiguration的作用:
      • 该注解导入AutoConfigurationImportSelector类,其核心方法selectImports()会扫描 META-INF/spring.factories 文件(SpringBoot starter 包和自定义 starter 中均包含此文件)。
      • spring.factories文件中配置了大量 “自动配置类”(如HttpEncodingAutoConfiguration、DataSourceAutoConfiguration),这些类对应不同场景的默认配置。
    • 3. 自动配置类生效逻辑:
      • 每个自动配置类(如DataSourceAutoConfiguration)都有@Conditional系列注解(如@ConditionalOnClass:判断类路径是否有指定类,如DataSource;@ConditionalOnMissingBean:判断容器中是否没有指定 Bean)。
      • 若满足@Conditional条件,自动配置类会向容器中注册默认 Bean(如DataSource),并加载默认配置(如从 application.properties 中读取spring.datasource.url等参数)。

    示例:当引入spring-boot-starter-web依赖时,spring.factories中的DispatcherServletAutoConfiguration会生效(因类路径有DispatcherServlet),自动向容器注册DispatcherServlet(SpringMVC 核心),无需手动配置。

    #


    上次更新: 12/30/2025
    什么是网络四元组
    SpringMVC 的优点和缺点

    ← 什么是网络四元组 SpringMVC 的优点和缺点→

    最近更新
    01
    CPU 使用率较高排查和解决
    12-29
    02
    JVM OOM 问题如何排查和解决
    12-29
    03
    接口防刷怎么实现?
    12-29
    更多文章>
    Theme by Vdoing | Copyright © 2025-2026 Bohr-L's note
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式