串野亮(くしの りょう)
 株式会社NTTデータ関西 法人ソリューション事業部所属。Struts/Springを利用したフレームワーク開発,プロジェクト支援に携わる。最近は,.NETを利用したフレームワーク開発に携わる。
石橋稔章(いしばし としあき)
 株式会社DTSネットワーク事業本部所属。Struts/Springベースのフレームワーク開発,プロジェクト支援に携わる。

 本稿では,Springから提供されているStruts連携について解説します。Strutsは,画面遷移などをサポートするSpringMVCと同じプレゼンテーション層のフレームワークです。

 Springでは,Strutsと連携する方法として,4つのパターンを提供しています。利用者としては,結局どの方法を利用すればよいのか悩むところではないでしょうか? また,すでにSpringとStrutsを連携している人にとっては,本当に今の方法が最適なのかどうかを不安に思っている人もいるのではないでしょうか?

 本稿では,まず,根本的な部分として,なぜSpringが提供するSpringMVCではなく,Strutsを利用する必要があるのかを説明します。その後にSpringの提供する4パターンの特徴を説明し,どういう場合にどのパターンを利用すべきか解説します。最後に4パターンのうちのSpring2.0から追加されたAutowiringRequestProcessorを利用したサンプル・アプリケーションを作成します。

なぜStrutsを利用するのか?

 Springではプレゼンテーション層のフレームワークとして,前回まで解説してきたSpringMVCを提供しています。SpringMVCとStrutsでは,Spring2.5からSpringMVCでアノテーションが使えるようになったという違いはありますが,機能的にはそれほど大きな違いはありません。

 それではなぜ,Springだけではなく,Strutsを利用する必要があるのでしょうか? その理由は,Strutsの利用実績の豊富さ,技術者の数の多さがすべてといっても過言ではないでしょう。多少機能面で劣っていたとしても,開発する側も依頼する側も失敗しないように経験のある無難な方法を選択するのが普通だと思います。

 逆に,Strutsだけではなく,Springと使用する理由としては,当然これまでの連載で解説してきたSpringのDIおよびAOPといった機能を使いたいためです。

Strutsとの連携方法

 ここからは,Springが提供するStruts連携機能の4パターンについて解説していきます。Struts連携機能は以下のとおりです。

(1) ActionSupportを利用する方法
(2) DelegatingActionProxyを利用する方法
(3) DelegatingRequestProcessorを利用する方法
(4) AutowiringRequestProcessorを利用する方法