Java用のEメールテンプレートを作成するためのFreeMarkerというライブラリがあることを知っています。このライブラリはエンタープライズプロジェクトでの使用に適していると思いますか?Java用のメールテンプレートを作成するための他のライブラリはありますか?
8 に答える
Freemarker はうまく機能し、非常に強力です。Velocityはより単純な構文を持ち、やや強力ではありませんが、より寛容です。null (変数が設定されていない)。
私は両方を使用しましたが、Velocity は非常に簡単に使い始めることができます。Freemarker (より厳密な実装にもかかわらず) は、「正確性」と機能の点でより多くの機能を提供します。
はい、そうです。完全を期すために、次のような他の魅力的なライブラリがあります。
- Apacheの速度
- ストリングテンプレス
何年も前に、請求書通知を送信するためのアプリケーションを作成しました。Velocity を使用して、電子メールの実際の内容を作成しました。トランスポートは、Apache による電子メール サーバーである James によって提供されました。このアプリケーションは、毎日何万ものパーソナライズされた電子メールを送信します。
Velocity では何の問題もありませんでしたが、FreeMarker を使用した経験があるので、おそらく今は FreeMarker を選ぶでしょう。
私はPebbleテンプレート エンジンの作成者であり、まさにあなたが探しているものだと思います。
参考までに、電子メールだけでなく、他にも多くのテンプレート エンジンを使用できます。私が取り組んできたほとんどのプロジェクトでは、Velocity が使用され、Velocity でない場合は Freemarker が使用されました。
サーブレット環境にいる場合は、(おそらくそうではないかもしれませんが) 検討したいもう 1 つのオプションは、JSP を使用することです。ほとんどの場合、これはお勧めしません。これをセットアップするにはかなりの事前作業が必要だからです。
しかし、これは、JSP 構文とカスタム タグに精通している Web 開発者が多数いる私たちの環境では便利なソリューションでした。別のテンプレート言語を学ばなくても、電子メールの内容を直接処理できるのは良かったです (ただし、FreeMarker を学ぶのはそれほど難しくないと思いますが)。このアプローチにより、電子メール コンテンツでカスタム タグの一部を再利用することもできます。
企業部門では、多くの人がソナーや PMD などのツールを使用してコードの複雑さを調べています。これらのいずれかがテンプレート ライブラリをサポートしているかどうかはわかりません。ただし、実際にレビューしたテンプレートの複雑さのレベルは非常に高く、コードで防止したいと考えています。それらのいくつかをリファクタリングしようとしましたが、ある程度成功したものの、満足のいく結果は得られませんでした。数日前、Snippetory を使用して、2kLoC テンプレートを 150 行のテンプレート コードと約 1.5kLoC ロジックに新しい Java クラスにリファクタリングしました。. もちろん、これにはメトリクスを一致させるための作業が残っていましたが、今では保守可能なコードを実現することが可能です。Snippetory テンプレートは、テンプレートからデータ バインディング ロジックを移動することで、関心事項を大幅に分離します。おまけとして、テンプレートの再利用性が向上します。一方で、ロジックとコードの間のバインディングにもコードが必要です。結局、コードの量はあまり変わりませんでしたが、可読性は劇的に向上しました。
エンタープライズ ビジネスの場合は、Snippetory をお勧めします。