Préface
Habituellement, lorsque nous faisons du développement, nous rencontrerons la nécessité d'envoyer des SMS et des e-mails. Le client fournit souvent un modèle pour le contenu d'envoi. Si nous épissons les chaînes dans le programme pour obtenir ce modèle, c'est évidemment un moyen de tromper nos coéquipiers. Généralement, le modèle est placé dans le fichier Propriétés et remplace certaines des variables lorsqu'elle est utilisée.
Dans cet article, nous utilisons Springboot pour implémenter la fonction de l'envoi de codes de vérification SMS basés sur le modèle. Je ne dirai pas beaucoup ci-dessous, jetons un coup d'œil à l'introduction détaillée ensemble.
Conseils:
1. Expressions régulières
2. Springboot lit le fichier de propriétés
Définition du modèle
Définissez les modèles SMS qui doivent être définis dans le fichier msg.properties, avec le même répertoire que Application.Properties. Notez que le [[code]] en elle est la variable à remplacer.
tem.msg.verify.code = Le code de vérification est: [code], veuillez ne pas le divulguer à d'autres.
Lire les propriétés
Définir les msgConstants des composants, spécifier le fichier de propriétés à charger, utilisé pour lire le modèle défini, utilisez l'annotation @Value du ressort
@Propertysource ("classpath: msg.properties") @ composantpublic class msgConStatns {@value ("$ {tem.msg.verify.code}") String privé sendCodemsg; public string getSendCodemsg () {return sendCodemsg; } public void setSendCodemsg (String sendCodemsg) {this.sendCodemsg = sendCodemsg; }}Analyser la classe d'outils de modèle
Compte tenu de la commune, définissez le paramètre pour mapper, c'est-à-dire la variable qui doit être remplacée et l'expression régulière remplace la clé correspondante. Le format de la clé ici est: {clé}, qui peut être modifié en fonction de votre propre situation et modifier le régulier en même temps.
public static String getContent (map <string, string> Params, String Content) {String reg = "// {// w *}"; // motif motif = motive.compile (reg); Matcher Matcher = Pattern.matcher (Contenu); while (Matcher.Find ()) {String Group = Matcher.Group (); // String Key = Group.SubString (1, Group.Length () - 1); if (! Params.ContainsKey (key)) Jetez une nouvelle normalexception ("aucune clé à remplacer n'a été trouvée:" + clé); Content = content.replace (groupe, params.get (clé)); } return contenu; }test
Une demande AJAX très simple renvoie le contenu du SMS reçu
@ RestController @ requestmapping ("Demo") classe publique DemoController {@Resource private msgConStatns msgConStatns; @RequestMapping ("msg") public String msgContent () {String code = "123456"; // Dans le développement formel, les nombres aléatoires sont généralement utilisés map <string, string> params = new hashmap <> (); Params.put ("code", code); return sendCodeUtil.getContent (params, msgConstatns.getSendCodemsg ()); }}résultat
Valeur attendue: le code de vérification est: 123456, veuillez ne pas le divulguer à d'autres
Effet réel:
Résumer
Ce qui précède est l'intégralité du contenu de cet article. J'espère que le contenu de cet article a une certaine valeur de référence pour l'étude ou le travail de chacun. Si vous avez des questions, vous pouvez laisser un message pour communiquer. Merci pour votre soutien à wulin.com.