Spring Boot 3.2 Starter开发需明确三件事:定义自动配置类、声明条件装配逻辑、让外部项目感知Starter生效;通过新建starter与autoconfigure模块、正确配置pom.xml、编写AutoConfiguration类及imports文件、绑定配置属性、使用@Conditional注解组合控制装配,并本地安装后引入验证。

你想为团队封装一个统一的日志上报Starter,或想把公司内部的Redis连接规范打包成开箱即用的依赖——Spring Boot 3.2 Starter开发不是黑盒,它只需要明确三件事:如何定义自动配置类、怎样声明条件装配逻辑、以及怎么让外部项目真正“感知”到你的Starter生效。整个过程不依赖IDE插件,纯手工编写即可完成。
创建Starter基础模块结构
新建两个Maven模块:mycompany-spring-boot-starter(对外发布的Starter)和mycompany-spring-boot-autoconfigure(内含自动配置逻辑)。
前者只保留pom.xml,后者需包含src/main/java和src/main/resources目录。
【必须注意】 autoconfigure模块的groupId必须与starter模块一致,否则Spring Boot启动时无法扫描到自动配置类。
在autoconfigure模块的pom.xml中,添加spring-boot-autoconfigure依赖,scope设为compile;starter模块则以provided方式引入autoconfigure模块,并声明spring-boot-starter作为父依赖。
编写自动配置类
在autoconfigure模块中新建com.mycompany.autoconfigure.MyCompanyAutoConfiguration类。
该类需标注@Configuration、@EnableConfigurationProperties(MyCompanyProperties.class),并使用@Bean声明要注入的组件实例。
关键一步:在src/main/resources/META-INF/spring/目录下新建org.springframework.boot.autoconfigure.AutoConfiguration.imports文件(Spring Boot 3.2起不再支持spring.factories),文件内容只写一行:
com.mycompany.autoconfigure.MyCompanyAutoConfiguration
这行路径必须完全准确,大小写敏感,且不能有多余空格或换行——写错会导致自动配置彻底失效,且无任何报错提示。
定义配置属性绑定类
创建MyCompanyProperties类,用@Component + @ConfigurationProperties("mycompany")注解。
类中字段如host、port、timeout等,全部用private + getter/setter方式声明。
将 Spring Boot 2.7 项目升级到 Spring Boot 3.5 的实战流程,覆盖版本基线、依赖坐标替换、Jakarta 迁移、配置兼容、异步上下文传递改造与验证门禁。用于企业多模块 Maven 项目升级与排障。
务必在autoconfigure模块的pom.xml中添加spring-boot-configuration-processor依赖(scope为optional),否则IDE无法识别配置提示,且编译时不会生成spring-configuration-metadata.json。
这一步不做,外部项目引用Starter后,在application.yml里敲mycompany.时,不会有代码补全和文档提示。
声明条件化装配逻辑
方法一:按类存在性装配
在@Bean方法上加@ConditionalOnClass(RedisTemplate.class),表示只有classpath存在RedisTemplate时才创建该Bean。
方法二:按缺失Bean装配
在@Bean方法上加@ConditionalOnMissingBean(MyCompanyService.class),避免用户自定义同类型Bean被覆盖。
方法三:按配置值启用
在自动配置类上加@ConditionalOnProperty(name = "mycompany.enabled", havingValue = "true", matchIfMissing = true),默认开启,但允许用户通过配置关闭。
这三个注解可组合使用,比如先判断类是否存在,再判断配置是否启用,最后检查是否有用户自定义Bean——层层守卫,确保装配安全。
构建并本地安装Starter
第一步:进入autoconfigure模块根目录 → 执行mvn clean install。
第二步:进入starter模块根目录 → 执行mvn clean install。
第三步:在任意新Spring Boot 3.2项目中,pom.xml加入:
第四步:在application.yml中添加mycompany.host=localhost → 启动应用 → 观察控制台是否打印“MyCompanyAutoConfiguration loaded”。










