中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

spring boot使用properties定義短信模板的方法教程

發布時間:2020-10-25 16:18:34 來源:腳本之家 閱讀:305 作者:夢想修補師 欄目:編程語言

前言

通常我們做開發時候會遇到短信發送郵件發送之類的需求,發送內容往往會由客戶提供一個模板,如果我們是在程序里拼接字符串來搞定這個模板,很明顯是一種坑隊友的做法。一般將模板放入properties文件中,使用的時候替換其中的一些變量即可。

本文我們使用springboot來實現根據模板發送短信驗證碼的功能,下面話不多說了,來一起看看詳細的介紹吧。

tips:

1、正則表達式

2、springboot讀取properties文件

模板定義

將需要定義的短信模板都定義在msg.properties文件,目錄同application.properties,注意其中的【[code]】即為要替換的變量。

tem.msg.verify.code=驗證碼為:[code],請勿泄露給其他人。

讀取properties

定義組件MSGConstants,指定需要加載的properties文件,用來讀取定義的模板,使用spring的@Value注解

@PropertySource("classpath:msg.properties")
@Component
public class MSGConstatns {
 @Value("${tem.msg.verify.code}")
 private String sendCodeMsg;

 public String getSendCodeMsg() {
  return sendCodeMsg;
 }
 public void setSendCodeMsg(String sendCodeMsg) {
  this.sendCodeMsg = sendCodeMsg;
 }
}

解析模板工具類

考慮到公用,將參數設置為Map,即需要替換的變量,正則表達式替換找到對應的key,我這里key的格式為:{key},可根據自己情況進行修改,同時修改正則。

 public static String getContent(Map<String, String> params,String content) {
  String reg = "\\{\\w*}";//
  Pattern pattern = Pattern.compile(reg);
  Matcher matcher = pattern.matcher(content);
  while (matcher.find()) {
   String group = matcher.group();//
   String key = group.substring(1, group.length() - 1);
   if (!params.containsKey(key))
    throw new NormalException("未找到需要替換的key:" + key);
   content = content.replace(group, params.get(key));
  }
  return content;
 }

測試

一個很簡單的ajax請求,返回獲取到的短信內容

@RestController
@RequestMapping("demo")
public class DemoController {
 @Resource
 private MSGConstatns msgConstatns;
 @RequestMapping("msg")
 public String msgContent(){
  String code = "123456";//正式開發中一般采用隨機數
  Map<String,String> params = new HashMap<>();
  params.put("code",code);
  return SendCodeUtil.getContent(params,msgConstatns.getSendCodeMsg());
 }
}

結果

期望值:驗證碼為:123456,請勿泄露給其他人

實際效果:

spring boot使用properties定義短信模板的方法教程

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

梅州市| 修武县| 巨野县| 桓仁| 辽宁省| 西丰县| 海安县| 云和县| 江西省| 阜康市| 华蓥市| 泗水县| 玉田县| 宜昌市| 昂仁县| 大名县| 岳阳县| 嵩明县| 高阳县| 本溪市| 安义县| 涡阳县| 绥芬河市| 宣恩县| 县级市| 黎城县| 昭苏县| 东方市| 永春县| 多伦县| 沙雅县| 连州市| 丹阳市| 江华| 浏阳市| 浑源县| 九寨沟县| 防城港市| 北票市| 林州市| 襄垣县|