2017-10-25 14 views
0

私はSpringとSpring MailにFreemarkerを追加する初心者です。私はSpring Bootを使用していませんが、最新のSpring 4.xを使用しています。アプリケーションコンテキストのXMLファイルがありますが、注釈を使用しています。Freemarkerテンプレートを使用したSpring Mail with Database

最終的に私はデータベースからテンプレートを読みたいと思っています。なぜなら、私たちは多くのクライアントに対して多くのテンプレートを持っている可能性があるからです。ファイル名またはディスクからテンプレートを読み込むことはありません。私たちは次のようにFreemarkerのを定義するアプリケーションのコンテキストファイル持っているサービスの下で

entity.jar - module 
dao.jar - module 
services.jar - module 
ws.jar - module 

<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" /> 

を私は新しいクラスを持っている私たちは、Mavenのマルチモジュールプロジェクトとして私たちの春のアプリケーションが持つ

public class DatabaseToFreeMarkerTemplateLoader extends StringTemplateLoader 
    { 
     // todo: add code here 
    } 

しかし、私はここで何が必要なのか分かりません。私はインターネットでいくつかの例を探していますが、あまり見つけられません。

誰かが私に例を教えたり、ここで別のリンクを紹介したりすることができれば、文字通り空白を記入できるかどうかを確認するために最善を尽くします。

ありがとうございます!

ところで、私はこの作業をするために私のサービス層にspring-webを含める必要があることに驚いています。私はちょうどhtmlページではなく電子メールをフォーマットしたかったのです。ですから、Springとシームレスに連携するより優れた書式設定ツールがあれば教えてください。

答えて

0

私は春のこの部分を多く知りませんが、あなたはspring-webが必要ではないと思います。 FreeMarker APIは、コンフィグレーション(すなわち、freemarker.template.ConfigurationシングルトンBeanの作成)と出力の生成(template = configuration.getTemplate(...)template.process(...))の両方に直接使用できます。最後に、message.setText(theOutputFromTemplateDotProcess, true);messageは春MimeMessageHelperです)を使用します。ですから、ここでSpringとの統合はあまりありません。 (誰かが春のリソースからテンプレートをロードする必要がある場合であっても、彼らはConfiguration.setTemplateLoader経由org.springframework.ui.freemarker.SpringTemplateLoaderを使用することができます。)

は直接FreeMarkerのAPIを使用するとして(春に関連していない)、この例を参照してください。http://freemarker.org/docs/pgui_quickstart_all.html

関連する問題