自定义SpringBoot Starter 通过注解启动装配

本章目标

本章我们编写一个starter,目标如下:

1、通过@EnableSms 注解启用Starter

2、完成使用示例

Starter内容

pom.xml

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.4.RELEASE</version>
  </parent>
  
  <modelVersion>4.0.0</modelVersion>  
  <name>demo-spring-boot-starter</name>
  <groupId>com.v5ba</groupId>
  <artifactId>demo-spring-boot-starter</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter</artifactId>
    </dependency>
  </dependencies>
</project>

编写业务代码

@Data
@ConfigurationProperties(prefix = "com.v5ba")
public class SmsProperties {
    private String url;
    private String userName;
    private String password;
}

public class SmsUtil {
    private SmsProperties smsProperties;
    public SmsUtil(SmsProperties smsProperties) {
        this.smsProperties = smsProperties;
    }
    public boolean send(String phone, String content) {
        System.out.println("短信发送成功:"
                +smsProperties.getUrl()+"--"
                +smsProperties.getUserName()+"--"
                +smsProperties.getPassword());
        return true;
    }
}

将SmsUtil类交给Spring IOC管理,并提供给第三方使用

@Configuration
public class MyConfiguration {
    @Bean
    public SmsProperties smsProperties(){
        return new SmsProperties();
    }
    @Bean
    public SmsUtil smsUtil(SmsProperties smsProperties){
        return new SmsUtil(smsProperties);
    }
}

创建@EnableSms注解,当开发者添加了此注解,无论MyConfiguration类是否被spring扫描到都会进行加载

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Import({MyConfiguration.class})
public @interface EnableSms {
}

使用Starter示例

1、创建springboot项目

2、引入starter jar包

<dependency>
  <groupId>com.v5ba</groupId>
  <artifactId>demo-spring-boot-starter</artifactId>
  <version>1.0-SNAPSHOT</version>
</dependency>

3、在启动类添加@EnableSms注解,启用Starter

@EnableSms
@SpringBootApplication
public class StartApplication {
	public static void main(String[] args) {
		SpringApplication.run(StartApplication.class, args);
	}
}

4、配置参数

com:
  v5ba:
    url: 192.168.1.1
    user-name: v5ba
    password: 123456

5、调用

@RestController
public class TestController {
    @Autowired
    private SmsUtil smsUtil;

    @GetMapping("hello")
    public String hello(){
        smsUtil.send("18611111111", "消息内容");
        return "ok";
    }
}
本文链接:https://www.dzdvip.com/34674.html 版权声明:本文内容均来源于互联网。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 395045033@qq.com,一经查实,本站将立刻删除。
(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年7月13日 22:15
下一篇 2022年7月13日 22:54

相关推荐

  • 外贸人员为什么要学会在Facebook上做推广?

    Facebook对于外贸人员来说应该不陌生了 它是外贸营销的主要渠道之一,很多外贸工作都需要在Facebook上进行推广 但是如何推广并且得到好的反响成了外贸人员最头疼的问题 这并不是一件容易的事情,这就需要外贸人员不断地学习,争取将Facebook利益最大化 Facebook是美国的一个社交网络服务网站 也是自建独立站最重要的社交流量来源 超过 20 亿的用户每天都在使用 Facebook。Facebook凭借着庞大的用户群体和更加智能、 完善的广告服务,成为越来越多的跨境外贸企业获取流量、打开市场的重要方式 一,用户粘度高 作为人们日常使用的社交软件,Facebook拥有着众多的忠实用户。每天都会花费大量时间在 Facebook上进行社交。 二,用户人群标签分类明确 Facebook有大量的用户行为、兴趣爱好和使用习惯的数据积累。利用Facebook群组做推 广,添加高质量的群组,才能有效实现利益的最大化。 三、有助于品牌树立 可以建立属于自己的官方主页,利用专属主页进行引流,从而达到很好的宣传效果, 一个良好的、完善的Facebook主页一定会吸引更多的客户和关注度,在潜移默化中就对用户产生了品牌印象。 四、利用广告做推广 Facebook通过个人或企业广告账户建立面向用户的图片广告、视频广告、轮播广告以及 精品栏广告。运用各种 Facebook 产品帮助用户发现我们的品牌。 使用各种格式、版位和目标设计广告,以实现我们的业务目标。通过Facebook后台大数据实 时分析研究,能够将广告准确及时地展现给具有兴趣的潜在用户。 通过对Facebook的经营与推广,可以获得源源不断的流量。同时也可以增加客户的信任度和粘度,提高产品或者服务的销量和转化。经营出一个优秀的Facebook账户对于跨境电商卖家来说重要性不言而喻。

    2021年8月3日
    18
  • 3月13日晚 A股新能源上市公司利好消息

    1、运达股份(300772):东兴证券维持推荐评级:业绩及订单双增 风机大型化提速。 评级理由主要包括:1)公司营业收入及订单实现双增,大兆瓦风电机组销售提速;2)机组大型化推动公司盈利水平提升,研发投入持续增加;3)两海业务+新能源电站运营+智慧服务业务助力公司加快产业链一体化,形成全方位发展。 2、泰胜风能(300129):公司目前已并网发电的风电场为河南嵩县分散式风电场 规模为50MW。 3、宝丰能源(600989):国金证券维持买入评级:再次彰显成本管控能力 整体业绩稳步提升。 评级理由主要包括:1)在整体原料价格大幅提升的背景下,再次体现了良好的成本管控能力;2)四季度公司产品销售环比提升,焦炭高位运行支撑了整体的盈利能力;3)布局绿氢带动公司持续性发展,持续的增量项目支撑公司成长性。 4、中闽能源(600163):2021年度净利润约6.77亿元 同比增加39.31%。 2021年度业绩快报,营业收入约15.61亿元,同比增加24.67%;归属于上市公司股东的净利润盈利约6.77亿元,同比增加39.31%;基本每股收益盈利0.386元,同比增加34.21%。公司2021年度经营业绩增长的主要原因为:本期公司售电量增加,营业收入相应增加。公司马头山风电场、王母山风电场、大帽山风电场、青峰风电场二期项目于2020年陆续建成投产,报告期内前述项目全年全容量并网发电。 5、先导智能(300450):民生证券维持推荐评级:叠片设备新获订单 厚积而薄发。 评级理由主要包括:1)公司事件:公司官方公众号披露叠片机新签订单;2)前瞻布局叠片工艺开发,打造智能叠片设备;3)海外布局持续推进,同样利好公司叠片设备销售;4)股权激励彰显公司长久发展决心,预计2021-2023年净利润复合增速约37.4%。 6、中天科技(600522):中泰证券维持买入评级:1-2月业绩大超预期 海缆持续高增长。 评级理由主要包括:1)1-2月经营数据超预期,营收结构优化,海洋业务占比持续提升;2)海缆业务维持高景气,近期招标结果显示了行业的竞争壁垒;3)光纤光缆价格回暖,盈利能力持续改善。 7、金博股份(688598):一季度净利预增146%-172%。 预计2022年第一季度实现归属于母公司所有者的净利润为19,000万元到21,000万元,同比增加146.10%到172.00%。报告期内…

    2022年3月14日
    15
  • 世界上最恐怖的毕业照(细思极恐的毕业照)

    拍摄这辑史上最恐怖的毕业照的原因。6月的大学校园注定是属于毕业生的,在各种离别悄悄升温之时,全国各大高校的另类毕业照也在网络上频频出现,既民国女生毕业照,空姐下乡毕业照等一系列另类大学毕业照火遍网络之后,大连海洋大学8名女孩的史上最恐怖的毕业照一经推出,创意瞬间火爆了网络。 不拼颜值,我们拼创意啊。”提及自己的创意,拍摄这组毕业照的毕业生许研同学显得十分开心。她告诉记者,“自己当时也没有想那么多,就觉得传统的毕业照拍得不过瘾,想拍点有创意,好玩点的。而自己的想法与碰巧与其他几位同学不谋而合,大家最终决定以“灵异僵尸”为主题,拍摄一组毕业照。最终成为史上最恐怖的毕业照。 虽自谦的说颜值不够,但坐在记者面前的几个女孩子个个都是十分漂亮。这组照片的拍摄者王振远同学告诉记者,拍摄过程中,眼线口红等化妆品成了特效道具。这组照片在教学楼内的教室中拍摄完成的。“我们的摄影师非常棒,非常有才华。眼神和动作有时我们做的不到位,他就给我们亲身示范。”几个女孩说。 记者注意到这辑史上最恐怖的毕业照上,几个女孩身穿学士服,或是站在桌子上或者趴在地上,脸上的伤疤以及“灵异”的妆容都十分逼真,眼神和表情也很到位。“我们当时就是即兴想到的,没有化妆的道具,就拿自己的眼线和口红互相化妆容。”他们自己也没有想到最后的结果会那么好。采访中,几位女孩子也表达了自己的遗憾,“当时拍摄时间很紧,早上准备拍,中午就得把学士服交给学校,还有很多创意都没能实现,比如美少女系列,葫芦娃

    2022年7月16日
    30
  • 抖音带货达人数据分析

    当前的移动互联网时代是流量为王的时代,各家互联网平台都在攻城略地,跑马圈地,为了吸引用户的注意和时间使出浑身解数。 最近,笔者一直再关注抖音,对它也是爱不释手。抖音是一款互联网短视频服务型社交类产品。不同于微信是熟人之间的交往,它主打陌生人之间的联系,可以更快速的扩展社交圈,结识更多的新朋友。 短视频是继文本、图片、音频后新一代社交工具,现在非常火。 国内无论男女老少,各年龄层人群都有许多忠实的抖粉。在海外,抖音的国际版TikTok在欧美地区也获得了大量年轻人的青睐。 个人觉得抖音有意思的地方在于,可以在平台里面找到自己感兴趣的各种内容,并且可以与作者以及其他读者及时互动。 抖音目前已经成为综合服务平台,里面的内容有说历史的、讲影视评论、搞笑段子、人文哲学、旅游圣地、美食推荐、体育健身、带货直播、才艺直播等等包罗万象。 地铁、公交、旅途中随处可见越来越多的人都在刷抖音,并且逐步“上瘾”,甚至一天不刷都会觉得难受。有时候觉得抖音内容这么丰富,是不是已经对传统的电视节目构成了威胁。 最近一段时间无意中刷到一个抖音号“蝉妈妈数据”,是专门讲抖音带货达人成绩的。里面有期内容讲的是抖音5月份TOP10达人带货榜单。 里面名人不少,他(她)们一个月的成绩是相当耀眼啊!成交的金额真牛!一个人能做到这么大的成绩,厉害!(成绩可以参考图一、图二、图三、图四)。 老罗排第二,想起去年媒体报道罗永浩经营的锤子科技破产欠了6个亿债务。但是截止2020年10月他在脱口秀大会总决赛上透露还债已超过4亿,看来直播带货已经成为他快速还款的手段。如果这么带下去,尾款估计很快就会还完,未来甚至可能还有巨大的盈余。 这是怎么实现的呢?是通过互联网这个渠道快速变现啊! 图一 至 图四 因为自己是从事数据分析工作的,看到这些数字和商品,就开始琢磨能不能分析点什么有意思的东西出来。比如说能否看到达人们赚钱背后的逻辑呢?知道他们的套路和操作方法也算是涨见识。 本着这个兴趣,我开始了分析工作,于是就有了下面这些两个分析汇总图表。(事先声明本次分析先不考虑数据的真实性和数据的出处,只考虑数据的本身意义和启示)。   表一:TOP10信息汇总表 从这张表里我们可以得到如下信息: 1、TOP10里面的达人粉丝数加起来一共有1.5亿人,5月份带货总额一共23.32亿元; 2、TOP10带货的品类一共27个; 3…

    2021年6月30日
    42
  • iOS 15.5 RC 续航测试结果来了(iOS 15.5续航怎么样)

    5月13日苹果发布了iOS 15.5 RC版本,相隔9天iOS15.5 RC包含对苹果的增强功能现金卡、Apple 播客以及其他功能和错误修复。iOS 15.5 RC版本小编第一时间测试了续航。 iOS15.5 RC版本续航测试来了,对比iOS15.5 beta4发热、续航如何?(仅供参考) 机型:iPhone13 mini 系统:iOS15.5 RC 网络:4G 测试项目: 刷视频30分钟:100%-100%,掉电0% 刷微博30分钟:100%-94%,掉电6% 爱奇艺120分钟:94%-65%,掉电29% 王者60分钟:65%-39%,掉电26% 机型:iPhone13 mini系统:iOS15.5 RC网络:Wi-Fi测试项目:刷视频30分钟:100%-100%,掉电0%刷微博30分钟:100%-94%,掉电6%爱奇艺120分钟:94%-76%,掉电18%王者60分钟:76%-54%,掉电22% 相同的环境、相同的时间、相同亮度下测试,每个版本续航相差不大。有些人升级续航掉电快,可能电池健康比较低,使用不同,应用是否最新版本以及系统需要适配。如果你的掉电快,可以看下电池健康多少,接近80%可以考虑换电池。 本人测试都是大家日常使用的应用,数据仅供大家参考,每个人使用不同,屏幕亮度以及环境不同,测试结果也有所不同,但是续航每个版本相差的可以忽略不计。 总结:iOS 15.5 RC 版续航测试结果和iOS 15.5 beta 4剩余电量整体增加2-7%。4G状态下整体对比上个版本保持一致剩余电量39%,刷视频有明显的续航提升,4G状态下王者比iOS 15.5 beta 4发热明显,流畅度细滑,没有出现卡顿现象,爱奇艺续航有所下降。Wi-Fi状态下续航比iOS 15.5 beta4增加了2%,玩游戏发热不明显,王者续航比上个测试版有所提升,频率没有出现不稳定。整体测试结果4G状态下有所提升,Wi-Fi整体体验还不错。你们觉得iOS 15.5 RC续航怎么样?可以作为你的养老版本?

    2022年5月14日
    76
  • 想提升网站排名,这些seo技术你一定要了解

    其实大家做SEO优化,都是想提升网站排名,从而带来更多免费流量。 所以根据我们这么多年总结下来的一些小经验,发现如果把一些小细节方面给做好,其实对SEO效果的提升还是有很大的帮助的。 所以下面就给大家分享一些超实用提升网站排名的小技巧: 对于很多客户来说,时间要求一直是会问的问题,关键词优化一直是追求的目标,不仅是对于客户,对于seo技术也是一种考验,有些人使用正规合法的seo技术,而有些公司则是不管网站后期发展,只追求现阶段的效果,那么你知道实现关键词优化可以通过哪些SEO优化技术吗? 我们知道对于任何网站,当我们谈论排名的时候,首先经常会讨论,对方网站的权重,以及关键词竞争度。根据以往SEO工作经历,SEO优化小编通过如下两个方面,去讨论关键词优化,该如何实现。 想快速提升网站排名,这些seo技术你一定要了解! 1、新站没有权重 对于新站而言,如果没有权重,那么很可能基本上没有收录,你想要在短时间内容实现关键词优化,一个最有效的通道就是配置熊掌号。 从目前来看,它基本上对优质内容可以实现小时级别的收录,并且针对优质内容会给予一定权重的倾斜,也就是排名相对于靠前。 但这并不能确保你的关键词排名,一定会进前TOP3,为此你可能需要: ①确定内容页面,包含核心关键词与长尾关键词。 ②大量在站外投稿,发布新闻源外链,行业协会外链,专家独立博客外链。 ③利用社交媒体创建与内容页面主题相关的活动,引导用户,在百度搜索点击内容页面的长尾词。 利用,短期的社会舆论影响力,以及用户行为点击,可能会促使新站内容页面关键词优化,这里面核心的要点就是社交媒体活动的有效执行。 2、老站有权重 对于老站SEO优化,具有一定权重的站点,那么它的特定内容页面应该具有一定的权重,针对这种情况,如何实现它的关键词优化: ①合理的提高目标URL,在首页权重栏目的位置,比如:将其放在网站导航板块的核心位置,置顶在栏目页。 ②利用多个高权重页面,增加内链的形式,提高目标URL的排名。 ③在相关性的网站上投放广告,进行引流,持续产生用户行为点击,并且提高被分享的几率。 ④如果排名十分迫切,你可以利用站内高权重页面,301重定向到这个目标页,增加权重传递,当然,你也可以购买高PR老域名,进行301重定向

    2021年9月11日
    9