sms-aggregation短信聚合工具
在日常的開發(fā)過程中,短信的發(fā)送經(jīng)常使用(尤其是中小型的外包公司),畢竟不是每個公司都有阿里騰訊一樣的實力, 也不是每個都像銀行聯(lián)通等公司一樣有內(nèi)部的短信規(guī)程。第三方的短信往往是最常見的解決方案,但是市面上第三方短信服務(wù)商眾多, 各家都有不同的方式和標(biāo)準(zhǔn),每次需要使用時候,都需要花費時間去閱讀文檔和編寫相應(yīng)的工具,為一個短信浪費了太多的精力和時間。 這個工具的目的就是為了統(tǒng)一下各個廠商的短信發(fā)送工具的標(biāo)準(zhǔn),甚至于更換短信廠商只需要更改yml配置文件即可。
在SpringBoot環(huán)境集成
-
maven引入
<dependency> <groupId>kim.wind</groupId> <artifactId>sms-aggregation-spring-boot-starter</artifactId> <version> version </version> </dependency>
最新版本請查看官網(wǎng)或gitee倉庫最新的master版本會發(fā)布至maven中央倉庫 -
設(shè)置配置文件
sms: # 短信服務(wù)商 supplier: alibaba # 是否開啟短信發(fā)送限制 默認false restricted: true # 以下設(shè)置僅在開啟短信發(fā)送限制后生效 # 是否使用redis進行緩存 默認false redisCache: true # 單賬號每日最大發(fā)送量 accountMax: 20 # 單賬號每分鐘最大發(fā)送 minuteMax: 2
阿里云配置示意
sms: # 短信服務(wù)商 supplier: alibaba alibaba: #阿里云的accessKey accessKeyId: 您的accessKey #阿里云的accessKeySecret accessKeySecret: 您的accessKeySecret #短信簽名 signature: 測試簽名 #模板ID 用于發(fā)送固定模板短信使用 templateId: SMS_215125134 #模板變量 上述模板的變量 templateName: code #請求地址 默認為dysmsapi.aliyuncs.com 如無特殊改變可以不用設(shè)置 requestUrl: dysmsapi.aliyuncs.com
-
方法使用
public class Demo{ //此處作為演示使用,推薦使用構(gòu)造注入或set注入 @Autowired private final SmsBlend sms; public void test() { //發(fā)送固定模板短信 SmsResponse smsResponse = sms.sendMessage("18888888888","測試固定模板短信"); System.out.println(smsResponse); } }
配置詳解
線程池配置
每一家廠商都對于異步短信有不同的支持,有些甚至沒有,為了統(tǒng)一存在一個異步短信,我們配置了一個線程池用于執(zhí)行異步短信任務(wù),線程池默認配置如下:
sms: #核心線程池大小 corePoolSize: 10 #最大線程數(shù) maxPoolSize: 30 #隊列容量 queueCapacity: 50 #活躍時間 keepAliveSeconds: 60 # 線程名字前綴 threadNamePrefix: sms-executor- #設(shè)置線程池關(guān)閉的時候等待所有任務(wù)都完成再繼續(xù)銷毀其他的Bean shutdownStrategy: true
評論
圖片
表情
