范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

SpringBoot怎么自定义一个Starter?

  需求
  在一个项目中,用户需要发送消息,可以通过邮件,QQ,微信,钉钉,飞书等,目前这些发送消息的方式都已经提供了公开的API,想要实现在项目中通过简单的配置各个发发送方的发送方信息,然后直接调用发送的API,发送信息即可,下面举个:
  配置 message:   email:     username: Aden     password: 123456     key: HJFHADJSFBDASFHUADSINF     api-url: http://blog.qiyuan.run   feishu:     user-name: Aden     pass-word: 654321     key: HFJKADSBFJKADSJFKADSNFAD     api-url: http://blog.qiyuan.run
  调用     @Autowired     SendEmailMessageServiceImpl emailMessageService;          @Autowired     SendFeishuMessageServiceImpl feishuMessageService;      public boolean sendEmail(String msg) {         return emailMessageService.sendMessage(msg);     }          public boolean sendFeishu(String msg){         return feishuMessageService.sendMessage(msg);     }
  效果的就是以上这样,只要通过配置需要发送消息的配置,自动注入发送消息的API,就可以实现发送消息了,以下是实现过程。 starter创建
  第一步,需要为你的starter取一个响亮的名字,spring的官方文档中说明,官方的 starter 的命名格式为  spring-boot-starter-{xxxx}   比如spring-boot-starter-activemq
  第三方我们自己的命名格式为 {xxxx}-spring-boot-starter  。比如mybatis-spring-boot-starter  ,此处,我命名为message-spring-boot-starter  自定义配置信息类
  因为要在项目中的配置文件中写配置信息,所以在这个starter中,我们需要通过一个配置信息类来接收配置的信息。 @ConfigurationProperties(prefix = "message") @Data public class MessageProperties {     /**      * 邮箱消息      */     private MessageConfigInfo email = new MessageConfigInfo();     /**      * 飞书消息      */     private MessageConfigInfo feishu = new MessageConfigInfo();      @Data     public static class MessageConfigInfo {         /**          * 用户名          */         private String userName;         /**          * 密码          */         private String passWord;         /**          * 秘钥          */         private String key;         /**          * 消息发送API          */         private String apiUrl;     } } 发送消息的实现
  由于需要通过这个starter实现发送消息,所以这里可能得要引入发送邮件,发送飞书的官方API,这里就不搞这么复杂了,主要还是看过程,自定义一个接口模拟一下即可。
  模拟接口定义 public interface SendMessageService {     Boolean sendMessage(String message); }
  模拟接口实现 public class SendEmailMessageServiceImpl implements SendMessageService {      private MessageProperties messageProperties;      public SendEmailMessageServiceImpl(MessageProperties messageProperties) {         this.messageProperties = messageProperties;     }      @Override     public 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;     }      @Override     public Boolean sendMessage(String message) {         System.out.println(messageProperties.toString() + "  开发发送邮件,发送内容为:" + message);         return true;     } } 自动配置类@EnableConfigurationProperties(value = MessageProperties.class) @Configuration public class MessageAutoConfiguration {     /**      * 给发送邮件的实现类,注入配置信息      * @param messageProperties      * @return      */     @Bean     public SendEmailMessageServiceImpl emailMessageConfig(MessageProperties messageProperties){         return new SendEmailMessageServiceImpl(messageProperties);     }       /**      * 给发送飞书的实现类,注入配置信息      * @param messageProperties      * @return      */     @Bean     public SendFeishuMessageServiceImpl feishuMessageConfig(MessageProperties messageProperties){         return new SendFeishuMessageServiceImpl(messageProperties);     } } spring.factoriesorg.springframework.boot.autoconfigure.EnableAutoConfiguration=run.qiyuan.message.config.MessageAutoConfiguration 项目结构
  编写完之后, mvn install  即可。如何使用该starter
  在我们的项目中,引入自定义starter的坐标                      run.qiyuan             message-spring-boot-starter             0.0.1-SNAPSHOT         
  然后在配置文件中配置相关的信息 message:   email:     username: Aden     password: 123456     key: HJFHADJSFBDASFHUADSINF     api-url: http://blog.qiyuan.run   feishu:     user-name: Aden     pass-word: 654321     key: HFJKADSBFJKADSJFKADSNFAD     api-url: http://blog.qiyuan.run
  测试 @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!,这是一封邮件信息!  ");         SendFeishuMessageServiceImpl feishuMessageService = context.getBean(SendFeishuMessageServiceImpl.class);         feishuMessageService.sendMessage("你好,Starter!,这是一封飞书信息!");     } }
  原文链接:https://www.cnblogs.com/onecoder/p/16894269.html

小S松口认超后悔刺这2刺青!脚踝臀上图案曝很台的人都有记者潘慧中综合报道小S(徐熙娣)身上有不少刺青,从小就听到很多人劝她不要刺长大一定会后悔,她当时都坚称绝对不会后悔,但她近日坦言很后悔刺了两个刺青,一个在脚踝一个在臀部上方,因为我为什么投资者钟爱香港贵金属交易平台?由于世界上的贵金属储量是一定的,所以贵金属可以作为一种保值的工具。因此贵金属有很好的避险功能,可以用来对抗通货膨胀同时黄金世界通行,在市场上很难被操控,不易造成崩盘的现象更没有折旧肩带崩断裙下走光,7位女星走红毯的社死瞬间,画面太尴尬了文九思编辑9号探秘人明星在走红毯时总是盛装出席,都想艳压群芳登上头条,于是一张小小的红毯成了她们争奇斗艳的舞台。为了吸引眼球她们穿上漂亮的礼服,但礼服好看是好看,安全性可不能保证。微信头像姓氏头像,五十张大展宏图3D金属质感签名头像,请查收大家好,我是颖子。每天更新创意壁纸头像,喜欢记得关注哦。是你素手执笔写意的水墨丹青,是你为我手绘的似水年华,轻浅岁月。烟雨红尘,你成了我频频回顾的渡囗悠悠天涯,你是最温情的港湾,也含金量高达94。2!这个熟悉的图案来自央视新闻联合相关博物馆推出文博科普产品文博日历今天,一起来认识太阳神鸟金饰这个图案眼熟吗?是不是旅游的时候经常看到?这是中国文化遗产标志2005年,它从1600余件图案中脱颖而出获3699元起?魅族20系列售价曝光,这价格你会买吗?文名动科技经过了一个多月的预热后,魅族20系列终于要在3月30日在上海(梅赛德斯奔驰文化中心)发布了。而在最近,有网友曝光了疑似魅族20系列的售价信息,下面就随着爆料信息一起来看看一个普普通通的蛋蛋征服无数铁粉春分时节味蕾也跟着苏醒自然少不了语文课本里美食届的C位咸鸭蛋鸭蛋的腥味略重蒸煎炒水煮都不适宜唯独盐腌这一做法使得鸭蛋能扬长避短,独领风骚如汪曾祺先生所写筷子头一扎下去吱红油就冒出来经典女作家清醒语录,总有一句让你动心!推荐以下6名女作家清醒语录,祝所有女性都活出自我,活出自己想要的样子!1三毛三毛,当代著名学者作家。著作有雨季不再来梦里花落知多少撒哈拉的故事万水千山走遍等。1。一个人至少拥有一个北京平谷消费季举办中欧班列俄罗斯商品展销活动本端讯(记者马程远)3月26日,平谷区以拥抱新消费新生活为主题,在华联商场举办俄罗斯商品展销活动。本次活动作为平谷消费季的重要组成部分,展销的商品是来自俄罗斯经满洲里口岸运抵平谷的点赞!深圳3个项目入选全国工信领域商用密码典型应用方案来源读特近日,国家工业和信息化部国家密码管理局公布2022年全国工信领域100个商用密码典型应用方案名单,深圳申报的面向区块链的密码应用解决方案基于商用密码的腾讯云数据安全中台商用咳嗽的死对头找到了,反复咳嗽多喝它,清热润肺,早知少遭罪导语咳嗽的死对头找到了,反复咳嗽多喝它,清热润肺,止咳化痰,早知道少遭罪大家好我是傻姐美食,如果您阳后总是反复的咳嗽喉咙干痒不舒服,不妨可以多买一些梨子吃,梨子不仅能清燥热还有润肺
中年男人的魅力,只源于三个特质,你身上有吗?一遇事从容或许是岁月的无情,带来的同等的惠赠或许是阅历的丰富,加持着强大的身心。对中年男人来说,独立思考与分辨是非的能力,使得他们不再轻易惊慌失措!相比于年少轻狂,他们身上多了一丝中年情殇人到中年,生活得一地鸡毛,心力交瘁,哀莫大于心死。不经意间遇到一个丁香一样结着愁怨的伊人,相同的灵魂,相处时互诉衷肠,让人感到好似回到青年时代,怦然心动,翻开那时摘抄下来的一首诗,不负患者信任托付10月16日上午,各科室以多种形式收听收看了习近平总书记所作的报告,和大家一起再次学习,仍很激动!17日,在武汉大学人民医院(湖北省人民医院),该院党委理论学习中心组开展扩大学习,2022。10。22黄金下周走势分析世界上没有什么会比输到身无分文更让人长经验了,等有一天你知道不做某件事就会不亏钱时,你才可以学习该怎样做才会赚钱。你懂了吗?杰西。利弗莫尔回顾一下昨日周五行情走势昨天美盘价格走了一海运费持续下跌,或回归2019年水平,为何有卖家高兴不起来?我在头条搞创作第二期持续下跌的海运费对卖家来说是利好消息吗?从今年上半年以来,全球海运费的价格均出现了持续性的下跌,海运费的下跌还能持续多久?又会给卖家带来什么样的影响?海运费持续亿吨级油气区4!太提气能源是经济发展的基石,在过去的十年里,我国能源自主保障能力显著提升,建成了全球最大的清洁发电体系,能源结构不断优化,有力地保障了国民经济的稳定运行。马翠华现在住在北京门头沟一个居民硅片巨头打响价格战,隆基进入守利润关键期船大,难掉头。意将硅料硅片电池片组件四大环节都握在手中的隆基,曾享受着全行业最高的利润和市值。如今,却面临来自各个环节的同步围剿。隆基三季度业绩,增速掉队了。近日,一批光伏企业陆续先思考,再价值,后金钱最近开始在头条上写写东西,当看到第一笔收益时,那一刻我有点小兴奋,因为这是第一次在自媒体上的收益,虽然是0。02元,但我认为我写的东西产生了价值。我们做成或做好一件事,往往第一时间金钟奖红毯一言难尽,林心如礼服没撑住,陈意涵怪,杨祐宁变好帅第57届金钟奖来到第二天戏剧类的颁奖现场,经过了前一天小S身穿华服,以一票之差输给前男友黄子佼和Lulu之后,不知道还会有什么精彩的画面出现。先来看看星光熠熠的红毯吧!当晚最火的是洗头容易忽略的4件事,很多人都有,难怪发质差发量少每次心情有点糟糕的时候,大家都想换一个发型。换一个发型,换一个心情,换一个颜色,换一种生活态度。经常在长发短发直发卷发间徘徊的你,发质还好吗?发量还多吗?要想随意地在各种好看的发型天猫双11首发!由巴黎世家打造的YEEZYGAP即将预售作为下半年最重要的消费节点,天猫双11将在10月24日晚8点开启预售。由巴黎世家打造的限量合作系列YEEZYGAP,即将在10月24日20点,在GAP天猫官方旗舰店开启全球预售,其