Spring Boot 主动配置与启动原理全剖析

[复制链接]
发表于 2025-4-12 17:31:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
下面分两部门系统讲解:
第一部门:Spring Boot 主动配置原理(核心是主动装配)


一、Spring Boot 的主动配置是干嘛的?

传统 Spring 开发时,你要写一堆 XML 或配置类,非常贫苦。Spring Boot 引入了“主动配置”机制——你只必要引入依赖并加几个注解,框架就帮你完成配置初始化。

你几乎不必要管:


  • 数据源如何配置
  • Web 服务如何启动
  • 日记、Jackson、缓存如何整合
这一切都由主动配置帮你完成了。

二、核心注解:@SpringBootApplication

  1. @SpringBootApplication
  2. public class DemoApplication {
  3.     public static void main(String[] args) {
  4.         SpringApplication.run(DemoApplication.class, args);
  5.     }
  6. }
复制代码
这个注解其实是个组合注解,相当于:
  1. @Configuration
  2. @EnableAutoConfiguration
  3. @ComponentScan
复制代码


  • @EnableAutoConfiguration:是主动配置的关键入口
  • @ComponentScan:扫描当前包及子包的 Spring Bean
  • @Configuration:表示这是一个配置类

三、主动配置的背后机制(重要!)

1)@EnableAutoConfiguration 内部用到了 @Import:

  1. @Import(AutoConfigurationImportSelector.class)
复制代码
也就是说,它会把一堆主动配置类注册到 Spring 容器里。
2)AutoConfigurationImportSelector 会读取下面这个配置文件:

  1. META-INF/spring.factories
复制代码
里面有很多形如:
  1. org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
  2. org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,\
  3. org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration,\
  4. ...
复制代码
这些类都带有 @Configuration 注解,会被 Spring 主动加载成配置类。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表