我知道有一个名为FreeMarker的库可以为 Java 创建电子邮件模板。你觉得这个库适合在企业项目中使用吗?是否有任何其他库可以为 java 创建电子邮件模板?
8 回答
Freemarker 运行良好,并且非常强大。Velocity的语法更简单,功能稍弱,但更宽容。空值(未填充的变量)。
我都用过,而且 Velocity 很容易上手。Freemarker(尽管实施更严格)在“正确性”和设施方面提供了更多。
是的。为了完整起见,还有其他引人注目的库,例如:
- 阿帕奇速度
- 字符串模板
几年前,我编写了一个发送发票通知的应用程序。我使用 Velocity 来创建电子邮件的实际内容。传输由 Apache 的电子邮件服务器 James 提供。该应用程序每天发送数以万计的个性化电子邮件。
Velocity 没有给我带来任何问题,但是在使用过 FreeMarker 之后,我现在可能会选择 FreeMarker。
我是Pebble模板引擎的作者,我认为这正是您正在寻找的。
仅作记录,您可以使用许多其他模板引擎,而不仅仅是电子邮件。在我从事的大多数项目中,都使用了 Velocity,当它不是 Velocity 时,它是 Freemarker。
如果您在 Servlet 环境中,您可能想要研究的另一个选项(尽管可能不是)是使用 JSP。在大多数情况下,我不建议这样做,因为要进行此设置确实需要大量的前期工作。
然而,这在我们的环境中是一个有用的解决方案,我们有一群已经熟悉 JSP 语法和自定义标签的 Web 开发人员。很高兴能够让他们直接处理电子邮件内容,而无需学习另一种模板语言(尽管我确信 FreeMarker 可能并不难学)。这种方法还允许我们在电子邮件内容中重复使用我们的一些自定义标签。
在我开始做我的电子邮件模板之前,我想我会问我的 gFriend,我想到了使用 JSP 引擎进行模板的想法(如果你在一个 servlet 环境中)。我发现这个想法是原创的,并且非常适合我的需求,因为我在 GAE 下并且将 jar 添加到 GAE 是一个非常昂贵的决定(对性能的影响)
以及我是如何找到该链接的(最初的想法) https://stackoverflow.com/a/458088/2033675
所以我放了一个链接到如何做Java 电子邮件模板的建议?
自然是万一有人和我有同样的限制。
最好的
在企业领域,许多人使用声纳或 PMD 等工具来查看代码复杂性。我不知道其中一个是否支持任何模板库。但是,我在野外查看过的模板的复杂程度非常高,我真的很想在我的代码中避免这种情况。我试图重构其中的一些,即使我取得了一些成功,但结果从未令人满意。几天前,我使用Snippetory在一个新的 java 类中将一个 2kLoC 模板重构为 150 行模板代码和大约 1.5kLoC 逻辑. 当然,这仍然需要一些工作来匹配指标,但现在可以实现可维护的代码。Snippetory 模板通过将数据绑定逻辑移出模板,提供了很好的关注点分离。作为奖励,模板变得更加可重用。另一方面,逻辑和代码之间的绑定也需要一些代码。最后,代码量没有太大变化,但可读性显着提高。
对于企业业务,我推荐 Snippetory。