前言:在上一篇spring和springboot的关系中,提到过springboot是spring的增强,用 Starter 起步依赖自动整合依赖、解决版本冲突。这里看看starter是怎么做的。

Spring Boot Starter 是自动配置、依赖管理的核心机制,目的是让开发者 “开箱即用”,不用手动整合依赖和配置。

1. 核心原理(3 个关键点)

  • 依赖聚合:Starter 把某类功能的所有依赖(如 spring-boot-starter-web 包含 Tomcat、Spring MVC、jackson 等)打包成一个依赖,引入 Starter 就自动引入所有相关依赖,避免版本冲突;
  • 自动配置:Starter 内置 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 文件(Spring Boot 2.7+),指定自动配置类;Spring Boot 启动时会扫描这些配置类,根据「条件注解」(如 @ConditionalOnClass/@ConditionalOnMissingBean)自动初始化 Bean;
  • 约定大于配置:Starter 内置默认配置(如 Tomcat 端口 8080),开发者只需少量配置(甚至零配置)就能使用功能,也可通过 application.yml 覆盖默认值。

2. 举例

  • spring-boot-starter-redis:引入后自动配置 RedisTemplate、Lettuce 连接池,只需配置 spring.redis.host 即可用 Redis;
  • 自定义 Starter:比如封装公司通用的日志 / 监控 Starter,只需编写自动配置类,放在 META-INF 目录下,其他项目引入就能复用。

在项目里我们常用 web、redis、mybatis 等官方 Starter,也会封装自定义的 Starter 复用公司通用逻辑。

总结

  1. Starter 的核心价值:简化依赖管理、自动配置 Bean、降低整合成本
  2. 关键机制:依赖聚合 + 自动配置类(条件注解) + 约定式配置;
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐