1. Spring Framework
Spring Framework 1章 Spring Framework
- 1.1. Spring の概要
- 1.2. DI: Dependency Injection
- 1.3. Dependency Injection のタイプ
- 1.4. Spring のインストール
1.1. Spring の概要
Spring Framework (単に Spring と呼ばれることが多いです) は Rod Johnson 氏の著書 "Expert One-on-One J2EE Design and Development" の中で使用されたコードを元にしたオープンソースの Java/J2EE アプリケーションフレームワークです。Spring は DI コンテナと呼ばれる Bean コンテナをコアモジュールとし、下図のように 7つのモジュールからなります。
- Core モジュール
- Core モジュールは Spring の根幹をなすモジュールであり、オブジェクトの生成・登録、オブジェクト間の関連づけを行う Bean コンテナの機能を提供します。このモジュールにより、必要なオブジェクトの生成および初期化を一元化できるだけでなく、プログラムから Singleton の実装とオブジェクト間の依存関係の実装を排除することができます。
- Context モジュール
- JNDI のような方法で JavaBeans にアクセスする方法を提供します。Context モジュールの1つである org.springframework.context は Core モジュールである org.springframework.beans パッケージからその機能を継承していますが、サーブレットコンテナによるリソースバンドルやイベント伝播等のテキストメッセージングのサポートが追加されています。
- DAO モジュール
- JDBC 抽象化レイヤを提供します。このモジュールを使用することで開発者が Connection オブジェクトの取得・破棄、Statement オブジェクトの生成等を行う必要がなくなります。
- ORM モジュール
- JDO, Hibernate, iBatis 等の object/relational mapping API を統合するレイヤを提供します。ORM モジュールを使用することで O/R マッパを Spring の他の機能と組み合わせて使用できるようになります。
- AOP モジュール
- AOP Alliance と互換性のあるアスペクト指向プログラミングのフレームワークを提供します。AOP モジュールを使用することで、たとえば session のチェック等のオブジェクトの責務外のロジックを明示的に記述することなく、宣言的に追加することができます。
- Web モジュール
- 基本的な Web 指向の統合機能を提供します。Spring を WebWork や Struts と一緒に使用する場合は、このモジュールが統合を行います。
- Web MVC モジュール
- Web アプリケーション用の Model-View-Controller フレームワークを提供します。Spring の MVC モジュールの特徴としてユーザが入力したデータを JavaBeans として取得できることや、入力されたデータの検証処理が MVC モジュールから切り離されていることが挙げられます。
DI コンテナと似たような機能を提供するものとして EJB コンテナがありますが、EJB コンテナ上で動作するオブジェクトがコンテナに依存するのに対し、Spring の DI コンテナ上で動作させられるのは POJO (Plain Old Java Object) であるという大きな違いがあります。また、Spring を採用する場合すべてのモジュールを使用しなければならないということはなく、たとえば、Core, DAO モジュールのみを使用することもできます。上記のモジュールの説明にもありますが、Struts や Hibernate 等のフレームワークと併用することができるのです。
ライセンスは Apache License, Version 2.0 を採用していますので、商用利用も可能です。