我正在创建一个springboot应用程序,该应用程序需要处理存储在数据库中的百里香代码以及文件系统中存储的常规百里香页面。我的问题是什么是最好的方法?
首先,我尝试创建两个不同的解析器并将它们添加到模板引擎中。然后,我尝试使用单独的解析器创建两个单独的模板引擎。第二次尝试成功了,但我认为这不是正确的方法,因为模板很昂贵。
第一
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文件的路径,并将来自数据库的字符串内容作为实际页面处理。
感谢您的时间!