在我们的应用程序中,系统正在发送大量电子邮件。对于所有具有不同上下文变量填充动态数据的用户,这些电子邮件的格式相同。
我们现在正在计划一项功能,允许管理员编辑和自定义这些模板。因此,计划是使用 groovy shell 在运行时评估模板,例如
Binding binding = new Binding();
binding.setVariable("model", [var1: "First Name", var2: "Last Name"])
GroovyShell shell = new GroovyShell(binding);
Object email = shell.evaluate('return "<html><title>Test Shell</title><body>${model.var1} ${model.var2}</body></html>";');
这似乎对我们很有效。我的问题是:
- GroovyShell 是首选引擎还是 Rhino 或其他更好?
- 是否有任何性能问题或内存问题需要注意?我们可以优化的任何低悬的果实,即外壳或绑定可以重复使用
- 上面代码中最大的瓶颈是什么?那个工程?评价?
谢谢