S2Velocityとは
簡単に言ってしまうと、Velocity Toolsのツールボックスのインスタンス管理をVelocity ToolsではなくS2Containerに任せるためのライブラリです。
Webアプリケーションで、Velocityをビュー層のテンプレートエンジンとして用いるとき、ビューヘルパー(ViewHelper)パターンを使うのが一般的です。 Velocity Tools プロジェクトで提供されるStrutsLinkToolやDateToolなどは大変便利ですが、これらビューヘルパー(ツール)を自作する場合に、 ビューヘルパーのインスタンス管理がVelocity側に握られていて問題になることがあります。
たとえば、ツールボックスに何かをinjectionしたい場合や、Service層を呼び出したい場合などに、 自分でgetComponent()するなどする必要があるのです。こうなると、そのソースコードはS2Containerに依存してしまうため テスタビリティや保守性、再利用性が下がってしまいます。
そこで、S2Velocityです。ツールボックスでも、S2Containerの提供する柔軟なコンポーネント定義、アプリケーション全体で一貫したインスタンス管理を実現できます。
2つの利用形態
S2Velocityでは2種類のツールボックス定義方法をサポートしています。
- Velocity Tools互換のXML形式による定義方法
- ツールボックスをすべてS2Containerのネームスペースを使って管理する定義方法
詳細は使い方 をご覧ください。
準拠しているバージョン
- Velocity(Core) 1.5
- Velocity-tools 1.3
- S2Container は 2.3.23 および 2.4.25 での動作を確認
- J2SE 1.5以降