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