java - 如何为 SMS 模板使用速度
问题描述
我正在开发需要通过 Amazon SNS 发送 SMS 的 Java 服务。
我正在使用 Velocity 模板来生成个性化的电子邮件,并考虑将其用于 SMS。
但我认为这不是正确的方法,因为用于发送 SMS 的 AWS 开发工具包方法将消息作为字符串。这将迫使我生成一个文件,然后读取它以将内容作为字符串获取。
我能想到的唯一选择是将模板作为 TINYTEXT(SMS 大小限制为 140 字节)存储在数据库中,并使用String.replaceAll()
而不是速度。
但我想知道是否有更好的方法来做到这一点,或者使用速度是否会严重损害性能。
解决方案
您可以使用速度而不生成文件,直到VelocityEngine.evaluate
使用上下文将输入字符串呈现到输出写入器中。当模板是动态构造的,或者想要使用 Velocity 作为令牌替换器时使用。
示例:
VelocityContext context = new VelocityContext(); context.put("param", paramMap); context.put("placeList", placeList); StringWriter writer = new StringWriter(); ve.evaluate(context, writer, "", template); return writer.toString();
推荐阅读
- reactjs - 每次击键后反应输入失去焦点
- javascript - AJAX 打开和更改 xmlhttp.open
- gradle - 未从环境中获取 Gradle 包装器经过身份验证的下载凭据
- php - 路线 [purchase.store] 未定义
- typescript - 为什么解构数组项会导致联合类型?
- azure - 来自需要摘要式身份验证的逻辑应用的 HTTP 调用
- python - TypeError:“dict_values”对象不可下标
- c# - WPF / C#(无 MVVM)带倒计时时钟的计时器
- android - Gson fromJson 方法返回 null 解析 Stripe API 响应
- sql - 按行排除满足特定条件的记录