发布于2026-07-06 阅读(0)
扫一扫,手机访问
说到 Spring Boot,绕不开的就是它的自动装配机制。这可以说是整个框架最亮眼的设计之一——它让开发者从繁琐的 XML 或 Ja va 配置中解放出来,真正实现了“约定优于配置”的理念。说白了,就是框架替你做了一大堆默认决策,你只需要关注自己的业务代码就好。

Spring Boot 的启动类上通常会标注 @SpringBootApplication,这是一个组合注解,里面藏着三个关键成员:
@SpringBootConfiguration @EnableAutoConfiguration @ComponentScan
其中 @EnableAutoConfiguration 就是开启自动装配的那把钥匙。
条件化配置(Conditional):框架借助 @Conditional 系列注解(比如 @ConditionalOnClass、@ConditionalOnMissingBean 等等)来判断当前环境是否满足加载某个配置类的条件。换句话说,不是所有配置都会被加载,只有在依赖、Bean、属性等条件都符合时才会生效。
举个例子:
@Configuration
@ConditionalOnClass(DataSource.class)
public class DataSourceAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public DataSource dataSource() {
// 自动配置数据源
}
}
只有 classpath 下存在 DataSource 类,且容器中还没有自定义的 DataSource Bean 时,这个自动配置才会生效——非常巧妙。
而所有需要自动加载的配置类,都得登记在 META-INF/spring.factories 文件中:
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.example.MyAutoConfiguration
Spring Boot 启动时会扫描所有 jar 包里的这个文件,然后逐一加载、过滤、注入。
整个流程可以梳理成四个步骤:
SpringApplicationMETA-INF/spring.factories 中 EnableAutoConfiguration 列表@Conditional 排除的配置类Starter 是 Spring Boot 生态里的另一个重要角色,主打“开箱即用”。一个典型的 Starter 通常打包三样东西:
pom.xml 里声明)XXXAutoConfiguration)application.properties 默认值)步骤 1:创建项目结构
my-starter ├── src │ ├── main │ │ ├── ja va │ │ │ └── com │ │ │ └── example │ │ │ ├── MyService.ja va // 服务类 │ │ │ └── auto │ │ │ └── MyAutoConfiguration.ja va // 自动配置 │ │ └── resources │ │ └── META-INF │ │ └── spring.factories // 注册自动配置 └── pom.xml
步骤 2:实现自动配置类
@Configuration
@ConditionalOnClass(MyService.class)
public class MyAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public MyService myService() {
return new MyService();
}
}
步骤 3:注册配置到 spring.factories
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.example.auto.MyAutoConfiguration
步骤 4:打包发布
my-spring-boot-starter org.springframework.boot spring-boot-autoconfigure
在用户项目中,直接注入 Starter 提供的服务即可:
// 用户项目中直接注入服务
@RestController
public class DemoController {
@Autowired
private MyService myService; // 自动注入 Starter 提供的 Bean
@GetMapping("/demo")
public String demo() {
return myService.execute();
}
}
| 概念 | 作用 | 关键实现 |
|---|---|---|
| 自动装配 | 按条件动态加载配置 | @Conditional, spring.factories |
| Starter | 依赖聚合 + 默认配置 | pom.xml + 自动配置类 |
通过这套机制,Spring Boot 把“约定优于配置”的理念落到了实处。开发者只需要把精力放在业务逻辑上,框架层面的基础设施——框架已经替你安排好了。这大概就是为什么 Spring Boot 能迅速成为主流的原因。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8