欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一文看懂springboot實現(xiàn)短信服務(wù)功能

 更新時間:2019年10月14日 13:47:00   作者:quellanan  
項目中的短信服務(wù)基本上上都會用到,簡單的注冊驗證碼,消息通知等等都會用到。這篇文章主要介紹了springboot 實現(xiàn)短信服務(wù)功能,需要的朋友可以參考下

前言

上一篇講了springboot 集成郵件服務(wù),接下來讓我們一起學習下springboot項目中怎么使用短信服務(wù)吧。

項目中的短信服務(wù)基本上上都會用到,簡單的注冊驗證碼,消息通知等等都會用到。所以我這個腳手架也打算將短息服務(wù)繼承進來。

短息服務(wù)我使用的平臺是阿里云的。網(wǎng)上有很多的短信服務(wù)提供商。大家可以根據(jù)自己的需求進行選擇。

準備工作

在阿里云上開通服務(wù),以及進行配置。這些阿里云官方文檔都寫的很清楚,怎么做就不細說的,大家可以參考一下這篇文章:

http://www.dbjr.com.cn/article/171902.htm

配置好之后你需要獲取如下信息:

accessKeyId 、accessSecret 這兩個是秘鑰。在用戶AccessKey 中可以找到。

signName 是簽名名稱。

templateCode 是模版code


添加依賴和配置

有了上面的準備工作,我們接下來開始在我們的項目中開發(fā)吧。一樣的先在pom.xml 文件中加入依賴:

<!--阿里云短信服務(wù)-->
 <dependency>
 <groupId>com.aliyun</groupId>
 <artifactId>aliyun-java-sdk-core</artifactId>
 <version>4.1.0</version>
 </dependency>

 <dependency>
 <groupId>com.alibaba</groupId>
 <artifactId>fastjson</artifactId>
 <version>1.2.61</version>
 </dependency>

這個fastjson 不是必須的,就看你項目中有沒有用到啦,沒有用到的話,添加第一個依賴就好了。

然后在application.properties文件中加入配置,這四個參數(shù),就是準備工作中我們獲取的四個參數(shù)。


service 層

和郵件服務(wù)一樣,我們這里沒有涉及到數(shù)據(jù)庫,就先直接寫service 層,創(chuàng)建SmsService 接口和 SmsServiceImpl 類。

SmsServiceImpl的代碼如下:

@Service
@Slf4j
public class SmsServiceImpl implements SmsService {

 @Value("${sms.accessKeyId}")
 private String accessKeyId;

 @Value("${sms.accessSecret}")
 private String accessSecret;

 @Value("${sms.signName}")
 private String signName;

 @Value("${sms.templateCode}")
 private String templateCode;

 @Override
 public boolean sendSms(String iponeNUmber) {
 DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessSecret);
 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("RegionId", "cn-hangzhou");
 request.putQueryParameter("PhoneNumbers", iponeNUmber);
 request.putQueryParameter("SignName", signName);
 request.putQueryParameter("TemplateCode", templateCode);
 JSONObject object=new JSONObject();
 String randCode=getRandCode(6);
 log.info("驗證碼為:{}",randCode);
 object.put("code",randCode);
 request.putQueryParameter("TemplateParam", object.toJSONString());
 try {
 CommonResponse response = client.getCommonResponse(request);
 log.info(response.getData());
 return true;
 } catch (Exception e) {
 log.error("{}",e);
 }
 return false;
 }
 /**
 * 生成隨機驗證碼
 * @param digits
 * @return
 */
 public static String getRandCode(int digits) {
 StringBuilder sBuilder = new StringBuilder();
 Random rd = new Random((new Date()).getTime());

 for(int i = 0; i < digits; ++i) {
 sBuilder.append(String.valueOf(rd.nextInt(9)));
 }

 return sBuilder.toString();
 }
}

整體的代碼邏輯很簡單,首先是通過Value注解將配置文件中配置的那四個參數(shù)獲取到。

sendSms()方法中 :

DefaultProfile 和 IAcsClient 是創(chuàng)建DefaultAcsClient實例并初始化。三個參數(shù)分別對應(yīng)的是:地域ID,RAM賬號的AccessKey ID, RAM賬號AccessKey Secret。

DescribeInstancesRequest 是創(chuàng)建API請求并設(shè)置參數(shù)。request.putQueryParamete()我們修改主要是修改這里面的參數(shù)。PhoneNumbers 是接收信息的手機號,這里我發(fā)送的是短信驗證碼。所以我這里生成一個6位的短息驗證碼。具體需求大家可以根據(jù)需求進行調(diào)整。

controller 層

controller 層比較簡單,就一個發(fā)送短信的接口,在sms包下創(chuàng)建SmsController類,代碼如下:

@RestController
@RequestMapping("/sms")
public class SmsController {

 @Autowired
 private SmsService smsService;

 @RequestMapping(value = "/send",method = RequestMethod.GET)
 public String sendSms(@RequestParam(value = "userName")String userName){
 smsService.sendSms(userName);
 return "success";
 }
}

測試

到此為止,短信服務(wù)已經(jīng)搭建好了,現(xiàn)在我們來測試一下,我們首先啟動項目,然后調(diào)用接口:

http://localhost:9090/zlflovemm/sms/send?userName=13265459362

然后看下日志

看看到我們的手機上收到了短信。

可以看到短信服務(wù)是配置成功了的。整體來說沒有我們想象中的那么復雜。

番外

好了,就說這么多啦,今天項目的代碼也同步到github 上啦。

github地址: ttps://github.com/QuellanAn/zlflovemm

總結(jié)

以上所述是小編給大家介紹的springboot實現(xiàn)短信服務(wù)功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • Spring Boot 中實現(xiàn)跨域的多種方式小結(jié)

    Spring Boot 中實現(xiàn)跨域的多種方式小結(jié)

    Spring Boot提供了多種方式來實現(xiàn)跨域請求,開發(fā)者可以根據(jù)具體需求選擇適合的方法,在配置時,要確保不僅考慮安全性,還要兼顧應(yīng)用的靈活性和性能,本文給大家介紹Spring Boot 中實現(xiàn)跨域的多種方式,感興趣的朋友一起看看吧
    2024-01-01
  • 詳解ZXing-core生成二維碼的方法并解析

    詳解ZXing-core生成二維碼的方法并解析

    本文給大家介紹ZXing-core生成二維碼的方法并解析,主要用到goggle發(fā)布的jar來實現(xiàn)二維碼功能,對此文感興趣的朋友一起學習吧
    2016-05-05
  • Springboot視圖解析器ViewResolver使用實例

    Springboot視圖解析器ViewResolver使用實例

    這篇文章主要介紹了Springboot視圖解析器ViewResolver使用實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • Java中報錯org.springframework.jdbc.UncategorizedSQLException的多種解決方法

    Java中報錯org.springframework.jdbc.UncategorizedSQLException的多種

    本文主要介紹了Java中報錯org.springframework.jdbc.UncategorizedSQLException的多種解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06
  • 解決persistence.xml配置文件修改存放路徑的問題

    解決persistence.xml配置文件修改存放路徑的問題

    這篇文章主要介紹了解決persistence.xml配置文件修改存放路徑的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 基于Cookie與Session的Servlet?API會話管理操作

    基于Cookie與Session的Servlet?API會話管理操作

    這篇文章主要為大家介紹了基于Cookie與Session的Servlet?API會話管理操作詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Java實現(xiàn)記事本功能

    Java實現(xiàn)記事本功能

    這篇文章主要為大家詳細介紹了Java實現(xiàn)記事本功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • SpringBoot Druid配置過程圖解

    SpringBoot Druid配置過程圖解

    這篇文章主要介紹了SpringBoot Druid配置過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • 詳解如何讓Spring MVC顯示自定義的404 Not Found頁面

    詳解如何讓Spring MVC顯示自定義的404 Not Found頁面

    這篇文章主要介紹了詳解如何讓Spring MVC顯示自定義的404 Not Found頁面,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • 在SpringBoot中實現(xiàn)線程池并行處理任務(wù)的方法詳解

    在SpringBoot中實現(xiàn)線程池并行處理任務(wù)的方法詳解

    在使用Spring Boot開發(fā)應(yīng)用程序時,我們經(jīng)常需要處理一些耗時的任務(wù),例如網(wǎng)絡(luò)請求、數(shù)據(jù)庫操作或者其他需要花費一定時間的計算任務(wù),本文將介紹如何在Spring Boot中使用線程池來實現(xiàn)任務(wù)的并行處理
    2023-06-06

最新評論