Springフレームワークの中核はDIコンテナです。DIコンテナがオブジェクトの生成や協調を管理することは「第1回 DI:依存性の注入とは何か?」で説明しましたが、それ以外にもDIコンテナを使うからこそ実現できる機能がいくつか存在します。例えば、DIコンテナによって管理されるオブジェクトの生成、破棄などのイベントが発生したタイミングで何らかの処理を実行するといった、ライフサイクルの管理が可能になります。
第1回で作成したサンプルプログラムの一部を書き換えて、Springフレームワークによるオブジェクトのライフサイクル管理を試してみることにしましょう。
第1回の記事において、「関連オブジェクトの注入サンプル」で作成したプログラムのParentクラスに以下のInitializingBeanインターフェイスを実装してください。
リスト6 オブジェクト初期化時のイベントメソッド |
import org.springframework.beans.factory.InitializingBean; |
「リスト 2 7:オブジェクト初期化時のイベントメソッド」の実装を行うことによって、オブジェクトが初期化されたときにsetBeanName()メソッドが読み込まれるようになります。
オブジェクト初期化時のイベントメソッドの実行結果 |
afterPropertiesSet:親 |
そのほかにも、オブジェクトが破棄されるタイミングで発生するイベントを処理するための「DisposableBean」インターフェイスなどがあります。
インターフェイス名 | イベントメソッド | イベントタイミング | |
---|---|---|---|
InitializingBean | public void afterPropertiesSet() throws Exception | Bean初期化時 | |
DisposableBean | void destroy() throws Exception | Bean破棄時 | |
Springフレームワークは、開発プロジェクトのインフラストラクチャ構築をサポートするフレームワークであるといえます。強力なインフラストラクチャを構築するためにSpringフレームワークは、アスペクト指向プログラミングをはじめとしたインフラストラクチャ構築のフレームワークを提供しています。インフラストラクチャコードをビジネスロジックから切り出せば、見通しの良いプログラムになるだけではなく、保守性、柔軟性に富んだアプリケーションを作り出すことが可能になります。
Springフレームワークを使用して構築したインフラストラクチャは、再利用可能なインフラストラクチャとすることができるのです。
次回はSpringフレームワークを使って構築したインフラストラクチャのメリットを説明していきたいと思います。
Copyright © ITmedia, Inc. All Rights Reserved.