Spring Boot Starter机制
·
前言:在上一篇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 复用公司通用逻辑。
总结
- Starter 的核心价值:简化依赖管理、自动配置 Bean、降低整合成本;
- 关键机制:依赖聚合 + 自动配置类(条件注解) + 约定式配置;
更多推荐




所有评论(0)