DIコンテナをサポートするEclipseプラグイン

Java界隈では数年前からDIコンテナを利用した開発が一般的になりつつある。日本国内では国産のSeasar2を利用するユーザも多いが、世界的にはなんといってもSpring Frameworkが標準といえるだろう。今回はこのSpring Frameworkでの開発をサポートする「SpringIDE」を紹介する。SpringIDEはつい先日、Eclipse 3.3に対応したバージョン2.0がリリースされたばかりだ。このバージョンはSpring Framework 2.0をサポートしており、筆者の試したところEclipse 3.2でも問題なく動作するようだ。ただしSpringIDEの動作にはEclipseをJava5で動作させる必要がある点に注意してほしい。

SpringIDEは以下の更新サイトからインストールすることが可能だ。本稿では取り上げないが、更新サイトからはMylynと統合するためのフィーチャーもインストールすることができるので興味のある方は試してみてほしい。

図1 SpringIDEのインストール

SpringIDEを使うための準備

まずは「File」メニューから「New」→「Project」→「Spring」→「Spring Project」でSpringを使用するプロジェクトを作成する。すでにワークスペースにSpringを使用するプロジェクトが存在する場合はプロジェクトを選択し、右クリックから「Add Spring Project Nature」を選択する。この操作によってそのプロジェクトでSpringIDEの機能を利用することができるようになる。

プロジェクト内に既存のBean定義ファイルが存在する場合はロジェクトのプロパティでSpringIDEに登録しておこう。また、プロジェクト内で複数の設定ファイルを使用している場合はコンフィグセットを作成しておくとよい。SpringIDEではDIするコンポーネント名の入力補完などを行うことができるが、設定ファイルがコンフィグセットでグループ化されている場合、同じコンフィグセット内のコンポーネントを補完することができる。

図2 設定ファイルをSpringIDEに登録

図3 コンフィグセット

設定ファイルの編集

「File」メニューから「New」→「Other...」→「Spring」→「Spring Bean Definition」でSpringのBean定義ファイルを作成することができる。使用するスキーマやコンフィグセットに登録するかどうかを選択することができる。

図4 Spring設定ファイルの作成(使用するスキーマを選択することができる)

Bean定義ファイル上ではXMLタグや属性に加えてクラス名や、DIするプロパティ名、コンポーネント名などのコード補完が可能だ。また、Bean定義ファイルの記述内容が誤っている場合はエラーとして表示される。

図5 Spring設定ファイルでのコード補完

Spring Explorerビューにはコンポーネントの依存関係がツリー状に表示される。各ノードをダブルクリックすることで設定ファイルのコンポーネント定義部分にジャンプすることができる。また、ノードを選択して右クリック→「Open Graph」でコンポーネントの依存関係をグラフで表示することもできる。

図6 Spring Explorerビュー

図7 コンポーネントの依存関係をグラフ表示

Spring Web Flow

SpringIDE 2.0の新機能としてSpring Web Flowに対応したことがあげられる。Spring Web FlowはWebアプリケーションにおける画面遷移を再利用可能なコンポーネントとして定義するものだ。定義したフローそのものは特定のフレームワークに依存せず、StrutsやJSF、SpringMVCといったWebアプリケーション上で利用することができる。

Spring Web Flowのフロー定義ファイルを作成するには「File」メニューから「New」→「Others...」→「Spring」→「Spring Web Flow Definition」を選択する。フロー定義から参照するBean定義ファイルなどを選択し、フロー定義ファイルを作成する。フローは以下のようなグラフィカルエディタで編集することができる。

図8 Spring Web Flow

XMLエディタで直接フロー定義ファイルを編集することもできる。この場合もステートIDやBean定義ファイルで定義されているJavaBeanのコード補完など、フロー定義を記述する際に便利な機能が提供されている。

図9 フロー定義ファイルでのコード補完

Spring開発に必須のツール

最近のJavaフレームワークはオープンソースのものでもEclipseやNetBeans用のプラグインが提供されることが珍しくなくなってきており、フレームワークだけでなく、ツールの存在もフレームワークを選定する基準の1つとなってきているのではないだろうか。SpringIDEは以前からSpring用の開発環境として定評があり、さらに最新バージョンでは待望のSpring 2.0やSpring Web Flowがサポートされるなど、今後もSpringを利用した開発ではなくてはならない存在といえるだろう。

次回はSpringと同じくDIコンテナであり、日本国内で広く利用されているSeasar2での開発をサポートするEclipseプラグインを紹介する予定だ。