В нашем приложении из системы отправляются многочисленные электронные письма. Эти электронные письма были одного формата для всех пользователей с разными контекстными переменными, заполняющими динамические данные.
Сейчас мы планируем функцию, позволяющую администраторам редактировать и настраивать эти шаблоны. Таким образом, планируется использовать оболочку groovy для оценки шаблонов во время выполнения, например.
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 или другой лучше?
- Есть ли какие-либо проблемы с производительностью или проблемами с памятью, о которых следует знать? Любой низко висящий фрукт, который мы можем оптимизировать, т. е. можно ли повторно использовать скорлупу или переплет
- Какое самое большое узкое место в приведенном выше коде? Постройка? Оценка?
Благодарность