[英]Spring Mail with Freemarker Templates from Database
我是将Freemarker添加到Spring和Spring Mail的新手。 我没有使用Spring Boot,但是我使用的是最新的Spring 4.x,尽管我们有一个应用程序上下文XML文件,但我们确实使用了注释。
因此,最终我想从数据库中读取模板,因为我们可能有许多针对许多客户的模板。 我们不会从文件名或磁盘加载模板。
我们将Spring Application作为一个Maven多模块项目:
entity.jar - module
dao.jar - module
services.jar - module
ws.jar - module
在服务下,我们有一个定义Freemarker的应用程序上下文文件,如下所示:
<bean id="freemarkerConfiguration"
class="org.springframework.ui.freemarker.FreeMarkerConfigurationFactoryBean">
<property name="preTemplateLoaders">
<list>
<ref bean="databaseTemplateLoader" />
</list>
</property>
</bean>
<bean name="databaseTemplateLoader"
class="com.myapp.server.util.DatabaseToFreeMarkerTemplateLoader" />
我有一门新课,叫做:
public class DatabaseToFreeMarkerTemplateLoader extends StringTemplateLoader
{
// todo: add code here
}
但是我不确定这里还需要什么。 我正在互联网上寻找一些示例,但找不到太多。
如果有人可以为我提供示例,或在此处引用我的其他链接,我会尽力查看我是否可以从字面上填写空白。
谢谢!
顺便说一句:我很惊讶我必须在服务层中包含spring-web才能完成这项工作。 我只是想格式化电子邮件而不是html页面。 因此,如果有一个更好的格式化工具可以与Spring无缝兼容,请告诉我。
我对Spring的这一部分不太了解,但我认为您不需要spring-web
。 您可以直接使用FreeMarker API进行配置(即创建freemarker.template.Configuration
单例bean)和生成输出( template = configuration.getTemplate(...)
, template.process(...)
)。 最后,您只需使用message.setText(theOutputFromTemplateDotProcess, true);
(其中message
是Spring MimeMessageHelper
)。 我相信,这里没有太多与Spring集成的东西。 (即使有人需要从Spring资源加载模板,他们也可以通过Configuration.setTemplateLoader
使用org.springframework.ui.freemarker.SpringTemplateLoader
。)
从直接使用FreeMarker API(与Spring不相关)开始,请参见以下示例: http : //freemarker.org/docs/pgui_quickstart_all.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.