Spring Boot Starter机制通过声明式引入依赖、继承spring-boot-starter-parent父工程、触发@EnableAutoConfiguration自动装配三步联动实现零配置启动;引入starter后,Maven自动拉取兼容依赖链,父POM统一版本,自动配置类按@Conditional条件加载Bean。

Spring Boot Starter 机制不是靠“写配置”启用的,而是通过声明式引入 + 父工程约束 + 自动装配三步联动实现依赖简化。核心在于选对 starter、继承正确 parent、不写额外配置也能跑通。
按需引入官方 starter 依赖
在 pom.xml 中直接添加对应功能的 starter,Maven 会自动拉取整套兼容版本的依赖链。不需要手动找 Spring MVC、Tomcat、Jackson 或 Hibernate 的版本。
-
Web 开发:加
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>→ 自带嵌入式 Tomcat、Spring MVC、JSON 处理、默认 DispatcherServlet 配置 -
JPA 数据访问:加
spring-boot-starter-data-jpa→ 自动引入 Hibernate、HikariCP、JPA Repository 支持,无需手配 EntityManagerFactory -
Redis 缓存:加
spring-boot-starter-data-redis→ 默认装配 Lettuce 客户端和 RedisTemplate,只要配好spring.redis.host就能用 -
测试支持:加
spring-boot-starter-test→ 一键集成 JUnit 5、Mockito、Spring Test、Testcontainers 等常用测试组件
必须继承 spring-boot-starter-parent
starter 能避免版本冲突,关键靠父 POM 统一锁定所有底层依赖版本(如 Spring Framework、Tomcat、Lettuce)。不继承它,starter 内部传递依赖可能失效或版本错乱。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 在 pom.xml 顶部声明:
<parent><br> <groupId>org.springframework.boot</groupId><br> <artifactId>spring-boot-starter-parent</artifactId><br> <version>3.5.6</version><br> <relativePath/><br></parent>
- 该 parent 已预设了插件管理(如 maven-compiler-plugin)、资源过滤规则、默认 Java 版本(Java 17+),还内建了 dependencyManagement,确保你引入任意 starter 都不会出现 Jackson 和 Spring 版本不匹配问题
依赖就位后,自动配置立即生效
只要 starter 在类路径中,且启动类标注 @SpringBootApplication(隐含 @EnableAutoConfiguration),Spring Boot 就会扫描 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 文件,加载对应自动配置类。
立即学习“Java免费学习笔记(深入)”;
- 比如引入
spring-boot-starter-web后,WebMvcAutoConfiguration会自动注册DispatcherServlet、ViewResolver、静态资源处理器等 Bean - 引入
spring-boot-starter-data-jpa并配置spring.datasource.url,就会自动创建DataSource、JpaTransactionManager、LocalContainerEntityManagerFactoryBean - 所有自动配置都带条件判断(如
@ConditionalOnClass、@ConditionalOnMissingBean),有冲突时可覆盖,默认行为足够开箱即用
第三方 starter 使用方式一致
非官方 starter(如 MyBatis、Druid、Elasticsearch)也遵循相同机制,只需引入对应坐标,配合少量必要配置即可启用。
-
mybatis-spring-boot-starter:引入后自动配置 SqlSessionFactory、MapperScannerConfigurer,只需加@MapperScan或@Mapper注解 -
druid-spring-boot-starter:引入即替换 HikariCP 为 Druid 连接池,支持监控页面、SQL 防火墙等扩展能力 - 所有第三方 starter 都应提供自己的
AutoConfiguration.imports和条件化装配逻辑,使用体验与官方 starter 无异

















