Я создаю приложение Springboot, которое должно обрабатывать код тимили, который хранится в базе данных вместе с обычными страницами тимелиста, хранящимися в файловой системе. Мой вопрос: что лучше для этого подойдет?
Сначала я попытался создать два разных распознавателя и добавить их в шаблонизатор. Затем я попытался создать два отдельных шаблонизатора с отдельными определителями. Вторая попытка сработала, но я не думаю, что это правильный подход, потому что шаблон дорогой.
1-й
public SpringTemplateEngine engine() {
SpringTemplateEngine engine = new SpringTemplateEngine();
engine.addTemplateResolver(stringTemplateResolver());
engine.addTemplateResolver(thymeleafTemplateResolver());
return engine;
}
@Bean
public ClassLoaderTemplateResolver thymeleafTemplateResolver() {
var resolver
= new ClassLoaderTemplateResolver();
resolver.setPrefix("templates/");
resolver.setSuffix(".html");
resolver.setTemplateMode(TemplateMode.HTML);
resolver.setOrder(1);
// templateResolver.
return resolver;
}
@Bean
public StringTemplateResolver stringTemplateResolver() {
var resolver = new StringTemplateResolver();
resolver.setTemplateMode(TemplateMode.HTML);
resolver.setCacheable(false);
resolver.setOrder(2);
return resolver;
}
второй
public SpringTemplateEngine thymeleafEngine() {
SpringTemplateEngine engine = new SpringTemplateEngine();
engine.addTemplateResolver(thymeleafTemplateResolver());
return engine;
}
public SpringTemplateEngine dbEngine() {
SpringTemplateEngine engine = new SpringTemplateEngine();
engine.addTemplateResolver(stringTemplateResolver());
return engine;
}
для первой попытки я могу использовать одну или другую (основываясь на том, что я добавляю первой). Если я сначала добавлю тимилеф, он будет загружать обычную страницу в обычном режиме, но обработает тимелист из базы данных как путь, а не как содержимое, и наоборот. Чего я хочу добиться, так это иметь один механизм, который будет обрабатывать путь от контроллера в виде пути к файлу .html и обрабатывать содержимое строки из базы данных как фактическую страницу.
Спасибо за ваше время!