【开源分享】Java 短信服务聚合框架-SMS4J

 欢迎来到百战百胜!我们致力于为广大IT从业者、学生和爱好者提供全面、实用的资源和服务。加入我们的聊天群,这里有专业大佬为你提供有价值的建议和指导!

微信搜索:IT开DD那点小事

更多访问www.besthub.tech

项目介绍

在日常的开发流程中,短信发送功能经常被使用,特别是在中小型的外包公司中。毕竟,并非每个公司都具备像阿里巴巴或腾讯那样的雄厚实力,也并非每个公司都像银行或联通那样拥有内部的短信发送规范。因此,第三方短信服务商成为了最常见的解决方案。然而,市场上的第三方短信服务商众多,每家都有各自的操作方式和标准。每次需要使用短信服务时,都需要投入大量时间和精力去阅读文档和编写相应的工具,这无疑增加了不必要的负担。

为了解决这个问题,SMS4J诞生了,旨在统一各个短信厂商的发送工具标准。通过这款工具,更换短信服务商仅需修改yml配置文件,从而极大地提高了工作效率。

SMS4J -- 让发送短信变的更简单。

image.png

项目优势

☕开箱即用

极简单的配置,方便的使用,三分钟即可完成发送短信的功能

⏰简单优雅

统一各个厂商的发送方式和功能,省去学习不同短信厂商的差异化方法,做到极简使用

🛫切换灵活

只需要通过配置文件即可立即切换不同的服务商,省去查阅文档和ctrl c v,发送短信,有手就行

📱功能丰富

对于短信中常见的限制和规则,不需要编写额外的功能方法和模块,只需要开启配置即可,后续还将集成更多功能方便使用

💻无缝切换

无需修改代码,即可完成短信厂商的切换

🔌强大拓展

拓展诸多插件,通知不再繁琐

📹轻装上阵

少量的第三方依赖,无需引入诸多SDK,为项目减肥

支持厂商一览表

在SpringBoot环境集成

创建项目

在 IDE 中新建一个 SpringBoot 项目,例如:sms-demo-springboot

maven添加依赖

<!-- https://mvnrepository.com/artifact/org.dromara.sms4j/sms4j-spring-boot-starter -->
<dependency>
    <groupId>org.dromara.sms4j</groupId>
    <artifactId>sms4j-spring-boot-starter</artifactId>
    <version>3.1.1</version>
</dependency>

yaml配置

  sms:
    # 标注从yml读取配置
    config-type: yaml
    blends:
      # 自定义的标识,也就是configId这里可以是任意值(最好不要是中文)
      tx1:
        #厂商标识,标定此配置是哪个厂商,详细请看厂商标识介绍部分
        supplier: tencent
        #您的accessKey
        access-key-id: 您的accessKey
        #您的accessKeySecret
        access-key-secret: 您的accessKeySecret
        #您的短信签名
        signature: 您的短信签名
        #模板ID 非必须配置,如果使用sendMessage的快速发送需此配置
        template-id: xxxxxxxx
        #您的sdkAppId
        sdk-app-id: 您的sdkAppId
        # 自定义的标识,也就是configId这里可以是任意值(最好不要是中文)
      tx2:
        #厂商标识,标定此配置是哪个厂商,详细请看厂商标识介绍部分
        supplier: alibaba
        #您的accessKey
        access-key-id: 您的accessKey
        #您的accessKeySecret
        access-key-secret: 您的accessKeySecret
        #您的短信签名
        signature: 您的短信签名
        #模板ID 非必须配置,如果使用sendMessage的快速发送需此配置
        template-id: xxxxxxxx
        #您的sdkAppId
        sdk-app-id: 您的sdkAppId

线程池默认配置

每一家厂商都对于异步短信有不同的支持,有些甚至没有,为了统一存在一个异步短信,配置了一个线程池用于执行异步短信任务,线程池默认配置如下:

sms:
  #核心线程池大小
  corePoolSize: 10
  #最大线程数
  maxPoolSize: 30
  #队列容量
  queueCapacity: 50
  #活跃时间
  keepAliveSeconds: 60
  # 线程名字前缀
  threadNamePrefix: sms-executor-
  #设置线程池关闭的时候等待所有任务都完成再继续销毁其他的Bean
  shutdownStrategy: true

以上线程池为默认的配置,如果有需要可以跟随自己的需求在yml文件进行配置

项目使用

@RestController
public class TestController {

    @GetMapping("/send")
    public void send(){
        //在创建完SmsBlend实例后,再未手动调用注销的情况下框架会持有该实例,可以直接通过指定configId来获取想要的配置,如果你想使用
        //负载均衡形式获取实例,只要使用getSmsBlend的无参重载方法即可,如果你仅有一个配置,也可以使用该方法
        SmsBlend smsBlend = SmsFactory.getSmsBlend("在配置中定义的configId");
        SmsResponse smsResponse = smsBlend.sendMessage("13888888888","新年好");
    }
}

更多使用配置参见官网:https://sms4j.com/doc3/

  • 48
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值