Я хочу создать механизм шаблонов в сервлетах. Конкретная реализация механизма шаблона должна быть изменена за интерфейсом TemplateEngine. При инъекции обычной зависимости она может выглядеть следующим образом:Инъекционная зависимость в статическом поле
public abstract class BaseServlet extends HttpServlet {
private TemplateEngine templateEngine;
public void setTemplateEngine(TemplateEngine te) {
templateEngine = te;
}
protected void render(Result result, HttpServletResponse response) {
templateEngine.render(result, resonse);
}
}
Недостаток такого подхода состоит в том, что каждый из сервлета, который хочет использовать метод визуализации должен расширить BaseServlet. Поэтому я хотел бы иметь статически импортированный метод визуализации.
public class TemplateEngineWrapper {
@Inject
static TemplateEngine templateEngine;
public static void render(Result result, HttpServletResponse response) {
templateEngine.render(result, resonse);
}
}
В Servlet я хотел бы использовать его таким образом:
import static TemplateEngineWrapper.render;
...
public void doGet(...) {
render(new Result(200, "Everything is fine."), response);
}
...
Что-то не так с этим подходом? Если да: что бы вы предложили вместо этого?