news 2026/5/10 1:04:41

如何创建一个 Springboot Starter

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何创建一个 Springboot Starter

1.创建一个 空项目 xxx-spring-boot-starter 作为场景启动器,方便别人引用

2.创建xxx-spring-boot-autoconfigure:包含自动配置类、属性类、核心服务等

3.注册自动配置(Spring Boot 2.7+ / 3.x)

resources目录下创建:
META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

文件内容为自动配置类的全限定名,一行一个,例如:

com.example.starter.autoconfigure.GreeterAutoConfiguration

自动配置类
自动配置类是 Starter 的灵魂。它使用条件注解,确保仅在特定条件下生效。

import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;

@AutoConfiguration // Spring Boot 2.7+ 引入,等价于 @Configuration 且有自动配置语义
@EnableConfigurationProperties(GreeterProperties.class)
@ConditionalOnClass(GreeterService.class) // 当类路径中存在该类时才生效
@ConditionalOnProperty(prefix = "greeter", name = "enabled", havingValue = "true", matchIfMissing = true)
public class GreeterAutoConfiguration {

@Bean
@ConditionalOnMissingBean
public GreeterService greeterService(GreeterProperties properties) {
return new GreeterService(properties);
}
}

核心服务类
核心的业务逻辑放在这里

public class GreeterService {
private final GreeterProperties properties;

public GreeterService(GreeterProperties properties) {
this.properties = properties;
}

public String greet(String name) {
return properties.getPrefix() + " " + name + properties.getSuffix();
}
}

属性配置类
配置核心服务类需要的属性名称

import org.springframework.boot.context.properties.ConfigurationProperties;

@ConfigurationProperties(prefix = "greeter")
public class GreeterProperties {
/**
* 问候语前缀,默认为 "Hello"
*/
private String prefix = "Hello";

/**
* 问候语后缀,默认为 "!"
*/
private String suffix = "!";

// getter / setter 略
}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/10 0:51:00

AI科研合作网络中的性别差异与核心地位获取因素分析

1. 项目概述:当AI遇上科研合作,性别差异如何影响“核心圈”?最近和几位在国内外顶尖高校做AI研究的朋友聊天,话题不自觉地就绕到了“圈子”上。大家普遍感觉,在人工智能这个看似前沿、开放的领域里,科研合作…

作者头像 李华
网站建设 2026/5/10 0:49:35

2026年AIGemini 3.1 Pro赋能无障碍交互新突破

在 2026 年,AI 已经从单纯的内容生成,逐步进入到更多需要理解场景、支持交互、辅助表达的细分领域。比如无障碍交互、辅助沟通、智能终端接入等任务,过去往往依赖专门的硬件和定制开发,现在则可以借助 Gemini 3.1 Pro 这类模型先做…

作者头像 李华
网站建设 2026/5/10 0:45:14

通过curl命令快速测试Taotoken的聊天补全接口是否通畅

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过curl命令快速测试Taotoken的聊天补全接口是否通畅 对于开发者与运维人员而言,在集成新的API服务时,一个…

作者头像 李华
网站建设 2026/5/10 0:37:46

CANN/atvoss Muls算子样例

Muls算子样例 【免费下载链接】atvoss ATVOSS(Ascend C Templates for Vector Operator Subroutines)是一套基于Ascend C开发的Vector算子库,致力于为昇腾硬件上的Vector类融合算子提供极简、高效、高性能、高拓展的编程方式。 项目地址: h…

作者头像 李华
网站建设 2026/5/10 0:35:41

CANN/triton-ge-backend性能调优方法论

性能调优方法论 【免费下载链接】triton-inference-server-ge-backend ge-backend基于triton inference server框架实现对接NPU生态,快速实现传统CV\NLP等模型的服务化。 项目地址: https://gitcode.com/cann/triton-inference-server-ge-backend 模型优化有…

作者头像 李华
网站建设 2026/5/10 0:34:05

哔哩下载姬DownKyi:3分钟学会B站视频无损下载的终极教程

哔哩下载姬DownKyi:3分钟学会B站视频无损下载的终极教程 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等&…

作者头像 李华