业务中经常会遇见邮件发送场景,前期处理邮件内容时,想到的就是通过字符串拼接的方式,如下:

String content = "用户[" + user + "]申请访问数据" + project + "请及时处理."

虽说上述处理方式没有大问题,但从系统设计的层面上说,这种方式属于硬编码,后期难以扩展,比如工程中涉及比较多的邮件发送,每种具体的业务都去这么拼接内容,若需要修改邮件描述时,就比较麻烦,不灵活。

我们期望使用配置文件的方式来配置邮件内容,将邮件中的变量定义为转义符。

mail_template.properties

mail.content=用户[{0}]申请访问数据{1}请及时处理.

在完成properties文件定义后,需要在工程启动时,加载配置文件。

@PropertySource("classpath:mail_template.properties")
@Configuration
public class SpringConfigProperty {​@Value("mail.content")String mailContent;public String getMailContent() {return mailContent;}
}

完成配置文件加载后,就是处理替换逻辑,这里创建一个MessageFormat的工具类,来处理内容替换:

public class MailUtil {/*** 替换邮件模板中的占位符{number},获得特定场景中的邮件内容** @param template 邮件模板* @param params 参数列表* @return 替换后的邮件内容* @author XXXX*/public static String formatMailContentFromTemplate(String template, List<String> params) {// 从配置文件中读取模板字符串,并进行占位符替换return MessageFormat.format(template,params);}
}

参考:
1、https://blog.csdn.net/lu930124/article/details/71158657

Java发邮件使用模板实践——替换配置文件中的参数相关推荐

  1. java发邮件无主题,使用SpringCloud过程中遇到的一些问题

    对SpringCloud做一次简单的问题总结. application.yml 和 bootstrap.yml 有何区别? I have just asked the Spring Cloud guy ...

  2. Java发邮件-QQ服务器认证

    2019独角兽企业重金招聘Python工程师标准>>> Java发邮件的几种方式 JavaMail Commons Email Spring Mail JavaMail是Java提供 ...

  3. 简易的java发邮件客户端

    主要是想熟悉一下jigloo插件的使用,所以做了一个发邮件的小程序,其实调用的都是人家的东西,我们自己只做了最简单的傻瓜操作,每思及此,感觉要学的东西还很多. 本人很懒,搞swing那套东西很不给力, ...

  4. java发邮件的代码

    通过java发送邮件的代码 转载请注明出处:java发邮件的代码 package com.zuidaima.util.mail;import java.util.Properties;import j ...

  5. Linux下sed命令替换配置文件中某个变量的值(改变包含字符的一行的值)之二——只改变第一出现的那一行

    一.背景 在之前的文章中有介绍过<Linux下sed命令替换配置文件中某个变量的值(改变包含字符的一行的值)> 但是这种方法存在一定的问题,就是假如某个变量在一个文件中出现两次,却只想更改 ...

  6. Linux下sed命令替换配置文件中某个变量的值(改变包含字符的一行的值)

    背景 项目初期,创业初期,对于部署还停留在比较简单的时期等等...部署代码需要脚本部署,那么不同环境部署代码的配置也不一样,同一个环境下,多个节点的配置不一样.同一个节点中,多个服务会用到同一个配置项 ...

  7. java从配置文件中读取参数

    java从配置文件中读取参数的方式 有的时候我们需要将一些固定的配置信息写到yml文件中去,然后在类中在读取 #首先就得先在yml文件中配置参数 upload:param:"test&quo ...

  8. java 发邮件 乱码_JavaMail发送中文邮件乱码的解决 | 学步园

    我们的程序经常会出现这样一个问题,在WinXp下测试是正常的,而到了服务器(Linux操作系统)上就出现这个问题. 1.    由于邮件我写的程序的邮件主题是写在配置文件(. properties)中 ...

  9. java发邮件_使用MATLAB自动发邮件

    MATLAB作为工程师的得力助手,常被我们誉为万能助手."MATLAB啥都能做,除了生孩子"这种话语常挂在我们嘴边.今天小编就偷偷告诉大家一个使用MATLAB自动发邮件的方法. 在 ...

最新文章

  1. 记事本写python怎么运行-从头学Python之编写可执行的.py文件
  2. Linux基础服务_DNS原理以及正反向DNS配置
  3. 软件工程概论 课堂练习 第3次作业6【流图;计算环形复杂度;找独立路径】
  4. python美多商城项目百度网盘_美多商城项目(七)
  5. 调试九法:软硬件错误的排查之道书评
  6. Kafka Consumer多线程消费
  7. 算法(2)-二叉树的遍历(递归/迭代)python实现
  8. 一道笔试题:贿赂选民
  9. linux权限bcd码是6,Linux权限管理(1)基本权限
  10. 半深入理解CSS3 object-position/object-fit属性
  11. 经典的出入库算法(C#实现)
  12. android三国2,三国演义安卓单机版
  13. 使用opencv进行车牌提取及识别
  14. httpclient
  15. 基于 Verilog 的经典数字电路设计(8)计数器
  16. PS_1_认识主界面_新建文档(分辨率)_打开保存(序列动画)
  17. 剖析锂电池的工作原理
  18. BinaryFormatter serialization and deserialization are disabled within this application
  19. macbook卡在进度条开不了机_Mac电脑开机一直卡在加载进度条怎么办?
  20. 编写一个js函数,实时显示当前时间,格式:“年-月-日 时:分:秒”

热门文章

  1. 绘画学习遇到Q版人物不会画怎么办?那你看看这个!!!
  2. Uni-App 画布 Canvas 用法小练之画个五角星
  3. 网络管理员宝典:宽带路由器优化技巧
  4. 浏览器对office套件的支持
  5. Android Studio常用设置和快捷键分享汇总
  6. Linux设置空闲超时时间
  7. 用skimage搭配Python进行大影像的处理,画矩形框,填充框
  8. Cenos7配置国内yum源
  9. 米斯齐 Mixly 触摸开关的使用
  10. Word中如何找回取消保存的文档内容