SpringBoot怎么自定义一个Starter?
admin
2024-02-10 22:53:34
0

转自:

SpringBoot怎么自定义一个Starter?

下文笔者讲述SpringBoot自定义一个starter功能简介说明,如下所示

SpringBoot starter简介

Starter是Spring Boot中的一个非常重要的概念
Starter相当于模块它能将模块所需的依赖整合起来并对模块内的Bean根据环境(条件)进行自动配置使用者只需要依赖相应功能的Starter无需做过多的配置和依赖Spring Boot就能自动扫描并加载相应的模块SpringBootStarter功能总结:整合这个模块需要的依赖库提供对模块的配置项给使用者并可以对配置项提供默认值使得使用者可以不指定配置时提供默认配置项值也可以根据需要指定配置项值 提供自动配置类对模块内的Bean进行自动装配
例:在Maven的pom.xml中加入spring-boot-starter-web后,项目就可支持Spring MVC

例:

建立用户发送消息的服务如:email,飞书发送信息
starter创建为starter取名 {xxxx}-spring-boot-starter如mybatis-spring-boot-starter 
本篇测试信息,我们使用 message-spring-boot-starter第一步:自定义配置信息类--获取yml中的配置信息@ConfigurationProperties(prefix = "message")
@Data
public class MessageProperties {/*** 邮箱消息*/private MessageConfigInfo email = new MessageConfigInfo();/*** 飞书消息*/private MessageConfigInfo feishu = new MessageConfigInfo();@Datapublic static class MessageConfigInfo {/*** 用户名*/private String userName;/*** 密码*/private String passWord;/*** 秘钥*/private String key;/*** 消息发送API*/private String apiUrl;}
}---发送消息代码实现接口定义
public interface SendMessageService {Boolean sendMessage(String message);
}模拟接口实现
public class SendEmailMessageServiceImpl implements SendMessageService {private MessageProperties messageProperties;public SendEmailMessageServiceImpl(MessageProperties messageProperties) {this.messageProperties = messageProperties;}@Overridepublic Boolean sendMessage(String message) {System.out.println(messageProperties.toString() + "发送邮件,发送内容为:" + message);return true;}
}public class SendFeishuMessageServiceImpl implements SendMessageService {private MessageProperties messageProperties;public SendFeishuMessageServiceImpl(MessageProperties messageProperties) {this.messageProperties = messageProperties;}@Overridepublic Boolean sendMessage(String message) {System.out.println(messageProperties.toString() + "发送邮件,发送内容为:" + message);return true;}
}自动配置类
@EnableConfigurationProperties(value = MessageProperties.class)
@Configuration
public class MessageAutoConfiguration {/*** 给发送邮件的实现类,注入配置信息* @param messageProperties* @return*/@Beanpublic SendEmailMessageServiceImpl emailMessageConfig(MessageProperties messageProperties){return new SendEmailMessageServiceImpl(messageProperties);}/*** 给发送飞书的实现类,注入配置信息* @param messageProperties* @return*/@Beanpublic SendFeishuMessageServiceImpl feishuMessageConfig(MessageProperties messageProperties){return new SendFeishuMessageServiceImpl(messageProperties);}
}新建spring.factories文件,并放入位置 resources/META-INF目录下 (如果没有spring.factories文件,需手动新建)org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.java265.message.config.MessageAutoConfiguration编写完之后,mvn install即可
使用starter
1.引入 自定义starter的坐标com.java265message-spring-boot-starter0.0.1-SNAPSHOT配置文件中配置相关的信息
message:email:username: Adealpassword: 123456key: 8784545454454api-url: http://java265.comfeishu:user-name: Adealpass-word: 123456key: 8784545454454api-url: http://java265.com--测试
@SpringBootApplication
public class TeachApplication {public static void main(String[] args) {ConfigurableApplicationContext context = SpringApplication.run(TeachApplication.class, args);SendEmailMessageServiceImpl emailMessageService = context.getBean(SendEmailMessageServiceImpl.class);emailMessageService.sendMessage("你好,Starter!,发送一封邮件 java265.com \n\n");SendFeishuMessageServiceImpl feishuMessageService = context.getBean(SendFeishuMessageServiceImpl.class);feishuMessageService.sendMessage("你好,Starter!,发送一封飞书信息");}
}

相关内容

热门资讯

特朗普的“中选经济强心针”:超... 美国消费者即将迎来一场规模空前的“现金雨”。 据追风交易台,根据摩根士丹利1月23日发布的最新研报,...
2025年IPO数据报告-投中... 2025 年中国企业 IPO 市场呈现止跌回升态势,全球范围内 294 家中国企业成功上市,IPO ...
山西银行锚定未来战略定位和经营... 文 | 中国金融网(CFN) 黄瑾 2026年1月下旬,山西银行密集召开2026年度工作会议、202...
思林杰并购告吹背后:对价砍了又... 深圳商报·读创客户端记者 梁佳彤 1月25日,思林杰(688115)发布公告称,公司分别召开第二届...
原创 昨... 特朗普批评加拿大被中国“吞食”,称关税将征收100%并嘲讽其“州长”,暴露霸权主义虚伪。 昨晚,特...
威尔鑫点金·׀ 美元因烽火戏诸... 美元因烽火戏诸侯遭遇重锤 金银再续强势逼空 2026年01月25日 威尔鑫投资咨询研究中心 (文...
钻石的眼泪,白银的沉默:当克拉... 钻戒的浪漫,是一场昂贵的误会? 那颗闪闪发光的石头,承载了多少海誓山盟。你以为买下的是一份永恒,一份...
贾国龙最新发声!“将回归一线,... 据媒体报道,西贝餐饮集团创始人贾国龙近日接受专访时表示,将回归一线、聚焦主业,不再打造个人IP。 贾...
阿里“平头哥”上市猜想引关注背... 上海浦东新区张江人工智能产业园内,一座灰橙交融的建筑静静矗立,平头哥半导体有限公司(以下简称平头哥)...
利好!千亿龙头完成金矿收购! 本报记者 肖艳青 1月25日晚间,洛阳栾川钼业集团股份有限公司(以下简称“洛阳钼业”)公告称,公司于...
原创 短... 刘阿姨大约从一年前开始断断续续出现腹痛、便秘症状,开始她没有当回事,觉得是胃肠道功能不好导致的,饮食...
旷达科技集团股份有限公司 第七... 证券代码:002516 证券简称:旷达科技 公告编号:2026-009 旷达科技集团股份有限公司 第...
原创 申... 离婚十三年,申通快递实控人被前夫追索分割财产。 作者 | 于婞 编辑丨高岩 来源 | 野马财经 19...
2025年业绩预亏!华神科技推... 继2024年净利出现亏损后,2025年,华神科技(000790)归属净利润预计同样出现亏损。在业绩连...
南宁吴圩国际机场将设立口岸进境... 近日,财政部、商务部、文化和旅游部、海关总署、税务总局联合印发《关于口岸进境免税店有关事宜的通知》(...
零食连锁商鸣鸣很忙港股IPO招... 观点网讯:1月25日,内地连锁零食商“零食很忙”及“赵一鸣零食”母企鸣鸣很忙(01768.HK)IP...
大普微注册生效:创业板包容性上... 创业板自设立以来,始终以“为高成长性的创新型、创业型企业提供专门的融资平台和发展舞台”为核心使命,其...
公司互动丨这些公司披露在电池等... 1月23日,多家上市公司通过互动平台、披露投资者关系活动记录表等渠道披露公司在电池等方面最新情况: ...
颠覆想象!阿里通义千问绝不仅是... 通义千问这套由阿里巴巴推出的AI大模型系列,已然成了全球领先的开源模型,它可不是单纯的聊天工具,而是...