AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

使用工廠類實現阿里云、騰訊云及華為云發送短信功能

來源: 責編: 時間:2023-11-06 17:19:24 296觀看
導讀在Spring Boot中,可以使用工廠類來實現阿里云、騰訊云和華為云的短信發送功能。首先,需要創建一個接口,定義發送短信的通用方法,然后為每個云服務提供具體的實現,最后創建一個工廠類來根據配置選擇正確的實現。以下是一個

在Spring Boot中,可以使用工廠類來實現阿里云、騰訊云和華為云的短信發送功能。首先,需要創建一個接口,定義發送短信的通用方法,然后為每個云服務提供具體的實現,最后創建一個工廠類來根據配置選擇正確的實現。以下是一個簡單的示例:lrK28資訊網——每日最新資訊28at.com

創建一個通用的短信發送接口:lrK28資訊網——每日最新資訊28at.com

public interface SmsSender {    void sendSms(String phoneNumber, String message);}

創建具體的短信發送服務實現類,分別為阿里云、騰訊云和華為云創建實現類。例如,以下是阿里云的實現:lrK28資訊網——每日最新資訊28at.com

@Servicepublic class AliyunSmsSender implements SmsSender {    private final String accessKeyId;    private final String accessKeySecret;    private final String signName;    @Autowired    public AliyunSmsSender(        @Value("${sms.aliyun.accessKeyId}") String accessKeyId,        @Value("${sms.aliyun.accessKeySecret}") String accessKeySecret,        @Value("${sms.aliyun.signName}") String signName    ) {        this.accessKeyId = accessKeyId;        this.accessKeySecret = accessKeySecret;        this.signName = signName;    }    @Override    public void sendSms(String phoneNumber, String message) {        // 使用阿里云的SDK發送短信        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);        IAcsClient client = new DefaultAcsClient(profile);        CommonRequest request = new CommonRequest();        request.setMethod(MethodType.POST);        request.setDomain("dysmsapi.aliyuncs.com");        request.setVersion("2017-05-25");        request.setAction("SendSms");        // 設置短信發送參數        request.putQueryParameter("PhoneNumbers", phoneNumber);        request.putQueryParameter("SignName", signName);        request.putQueryParameter("TemplateCode", "your_template_code");        request.putQueryParameter("TemplateParam", "{/"code/":/"" + message + "/"}");        try {            CommonResponse response = client.getCommonResponse(request);            System.out.println(response.getData());        } catch (ServerException e) {            e.printStackTrace();        } catch (ClientException e) {            e.printStackTrace();        }    }}

騰訊云的實現類lrK28資訊網——每日最新資訊28at.com

@Servicepublic class TencentSmsSender implements SmsSender {    private final String appId;    private final String appKey;    private final String sign;    @Autowired    public TencentSmsSender(        @Value("${sms.tencent.appId}") String appId,        @Value("${sms.tencent.appKey}") String appKey,        @Value("${sms.tencent.sign}") String sign    ) {        this.appId = appId;        this.appKey = appKey;        this.sign = sign;    }    @Override    public void sendSms(String phoneNumber, String message) {        // 使用騰訊云的SDK發送短信        // 實現具體的發送邏輯,參考騰訊云短信SDK文檔    }}

華為云的實現類lrK28資訊網——每日最新資訊28at.com

@Servicepublic class HuaweiSmsSender implements SmsSender {    private final String clientId;    private final String clientSecret;    private final String sender;    @Autowired    public HuaweiSmsSender(        @Value("${sms.huawei.clientId}") String clientId,        @Value("${sms.huawei.clientSecret}") String clientSecret,        @Value("${sms.huawei.sender}") String sender    ) {        this.clientId = clientId;        this.clientSecret = clientSecret;        this.sender = sender;    }    @Override    public void sendSms(String phoneNumber, String message) {        // 使用華為云的SDK發送短信        // 實現具體的發送邏輯,參考華為云短信SDK文檔    }}

創建一個工廠類,根據配置選擇正確的短信發送實現類:lrK28資訊網——每日最新資訊28at.com

@Servicepublic class SmsSenderFactory {    private final AliyunSmsSender aliyunSmsSender;    private final TencentSmsSender tencentSmsSender;    private final HuaweiSmsSender huaweiSmsSender;    @Autowired    public SmsSenderFactory(AliyunSmsSender aliyunSmsSender, TencentSmsSender tencentSmsSender, HuaweiSmsSender huaweiSmsSender) {        this.aliyunSmsSender = aliyunSmsSender;        this.tencentSmsSender = tencentSmsSender;        this.huaweiSmsSender = huaweiSmsSender;    }    public SmsSender getSmsSender(SmsProvider provider) {        switch (provider) {            case ALIYUN:                return aliyunSmsSender;            case TENCENT:                return tencentSmsSender;            case HUAWEI:                return huaweiSmsSender;            default:                throw new IllegalArgumentException("Unsupported SMS provider: " + provider);        }    }}

創建一個枚舉類來表示短信服務提供商:lrK28資訊網——每日最新資訊28at.com

public enum SmsProvider {    ALIYUN,    TENCENT,    HUAWEI}

在Spring Boot應用中,配置并注入工廠類,根據配置選擇正確的短信服務提供商:lrK28資訊網——每日最新資訊28at.com

# application.properties 中的配置sms.provider=ALIYUN

在服務或控制器中,可以注入SmsSenderFactory,然后根據配置選擇合適的短信服務提供商,并使用工廠創建短信發送實例進行發送:lrK28資訊網——每日最新資訊28at.com

@Servicepublic class SmsService {    private final SmsSenderFactory smsSenderFactory;        @Value("${sms.provider}")    private SmsProvider smsProvider;    @Autowired    public SmsService(SmsSenderFactory smsSenderFactory) {        this.smsSenderFactory = smsSenderFactory;    }    public void sendSms(String phoneNumber, String message) {        SmsSender smsSender = smsSenderFactory.getSmsSender(smsProvider);        smsSender.sendSms(phoneNumber, message);    }}

這種方式使您能夠輕松切換不同的短信服務提供商,并根據配置選擇合適的實現類發送短信。請確保您已在項目中引入相應的云服務SDK,并配置好相關的參數,以便實際發送短信。lrK28資訊網——每日最新資訊28at.com

示例中完整代碼,可以從下面網址獲取:lrK28資訊網——每日最新資訊28at.com

https://gitee.com/jlearning/wechatdemo.gitlrK28資訊網——每日最新資訊28at.com

https://github.com/icoderoad/wxdemo.gitlrK28資訊網——每日最新資訊28at.com

lrK28資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-17262-0.html使用工廠類實現阿里云、騰訊云及華為云發送短信功能

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Gorm 中的遷移指南

下一篇: 使用Gorm進行高級查詢

標簽:
  • 熱門焦點
  • 影音體驗是真的強 簡單聊聊iQOO Pad

    大公司的好處就是產品線豐富,非常細分化的東西也能給你做出來,例如早先我們看到了新的vivo Pad2,之后我們又在iQOO Neo8 Pro的發布會上看到了iQOO的首款平板產品iQOO Pad。雖
  • 十個可以手動編寫的 JavaScript 數組 API

    JavaScript 中有很多API,使用得當,會很方便,省力不少。 你知道它的原理嗎? 今天這篇文章,我們將對它們進行一次小總結。現在開始吧。1.forEach()forEach()用于遍歷數組接收一參
  • 得物效率前端微應用推進過程與思考

    一、背景效率工程隨著業務的發展,組織規模的擴大,越來越多的企業開始意識到協作效率對于企業團隊的重要性,甚至是決定其在某個行業競爭中突圍的關鍵,是企業長久生存的根本。得物
  • 讓我們一起聊聊文件的操作

    文件【1】文件是什么?文件是保存數據的地方,是數據源的一種,比如大家經常使用的word文檔、txt文件、excel文件、jpg文件...都是文件。文件最主要的作用就是保存數據,它既可以保
  • 如何通過Python線程池實現異步編程?

    線程池的概念和基本原理線程池是一種并發處理機制,它可以在程序啟動時創建一組線程,并將它們置于等待任務的狀態。當任務到達時,線程池中的某個線程會被喚醒并執行任務,執行完任
  • Temu起訴SHEIN,跨境電商戰事升級

    來源 | 伯虎財經(bohuFN)作者 | 陳平安日前據外媒報道,拼多多旗下跨境電商平臺Temu正對競爭對手SHEIN提起新訴訟,訴狀稱Shein“利用市場支配力量強迫服裝廠商與之簽訂獨家
  • 新電商三兄弟,“抖快紅”成團!

    來源:價值研究所作 者:Hernanderz 隨著內容電商的概念興起,抖音、快手、小紅書組成的“新電商三兄弟”成為業內一股不可忽視的勢力,給阿里、京東、拼多多帶去了巨大壓
  • 微博大門常打開,迎接海外畫師漂洋東渡

    作者:互聯網那些事“起猛了,我能看得懂日語了”。“為什么日本人說話我能聽懂?”“中文不像中文,日語不像日語,但是我竟然看懂了”…&hell
  • iQOO 11S屏幕細節公布:首發三星2K E6全感屏 安卓最好的直屏手機

    日前iQOO手機官方宣布,新一代電競旗艦iQOO 11S將會在7月4日19:00正式與大家見面。隨著發布時間的日益臨近,官方關于該機的預熱也更加密集,截至目前已
Top