91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

织金县| 盘山县| 建湖县| 白银市| 锡林浩特市| 静乐县| 台湾省| 泰顺县| 拉萨市| 东辽县| 青海省| 肥西县| 宜都市| 甘洛县| 天气| 信丰县| 大姚县| 嘉定区| 北海市| 黔西县| 琼结县| 甘谷县| 海丰县| 浠水县| 瑞昌市| 天津市| 万全县| 定州市| 彭山县| 东辽县| 杂多县| 綦江县| 河曲县| 尚义县| 应城市| 博乐市| 铅山县| 桐梓县| 昌黎县| 明溪县| 镇原县|