2008年07月02日

3.2.1. The container

3.2.1 コンテナ
org.springframework.beans.factory.BeanFactoryは、前述のBeanを制御・管理するSpring IoCコンテナの実体をなすものです。

BeanFactoryインタフェースはIoCコンテナインタフェースの中心的なインタフェースです。このインタフェースの役割は、アプリケーションオブジェクトを生成・取得しそれを設定し依存関係を構築することです。

そのままで使用できるBeanFactoryインタフェースの実装が数多く提供されていますが、最も一般的に使用されるのはXmlBeanFactoryクラスでしょう。このクラスを使用することによって、アプリケーションを構成するオブジェクトの宣言と、そのオブジェクト間の依存関係をXMLによって設定することができます。XmlBeanFactoryはXMLによる設定メタデータ使用して全体の設定を行い、システムやアプリケーションを作り上げるのです。

[図:SpringのIoCコンテナ]


なぜBeanという名前を使うのか?

「コンポーネント」や「オブジェクト」を使用せずにわざわざ「Bean」という名前を採用した背景は、Spring Frameworkの起源に根ざしています(というのも、Spring Frameworkは複雑なEnterprise Java Bean に対するひとつの回答として作成されたという一面があるのです)。


3.2.1.1 設定メタデータ
上掲の図からもわかるように、SpringのIoCコンテナは設定メタデータを使用します。設定メタデータは単に、アプリケーション開発者がコンテナに「どのように(アプリケーション中のオブジェクトを)生成・設定・構築するか」を伝えるための手段です。通常この設定メタデータはシンプルでわかりやすいXMLによって提供されます。XMLによる設定メタデータを使用する場合には、IoCコンテナの管理下におきたいビーンのためのビーン定義を記述して、コンテナにその仕事をさせるだけです。

※注
XMLベースの設定は設定メタデータのなかでも最もよく使用される形式です。しかしこの形式だけしか使用できないわけではありません。Spring IoCコンテナはどんな形式で設定メタデータが書かれているかに縛られることなく使用することができます。XML形式の設定メタデータは非常にシンプルであるため、この章ではSpring IoCコンテナのキーとなる概念について、XMLを用いて紹介しています。
XML以外の形式でのSpringコンテナの設定については、3.11節 「アノテーションによる設定」を参照してください。


ほとんどのアプリケーション開発においては、Spring IoCコンテナのインスタンス化のためのコードを明示的に書く必要はありません。たとえばWebアプリケーション開発のほとんどのケースでは、8行程度のお決まりのJ2EEウェブデスクリプタXMLをアプリケーションで使用するweb.xmlファイルに書くだけで事足りてしまいます(3.8.5項 「ウェブアプリケーションのための簡便なApplicationContextのインスタンス化」を参照してください)。

Springの設定は管理対象となるビーンの定義を最低ひとつ持っています(複数になる場合がほとんどでしょう)。XMLを利用する場合にはこのビーン定義はトップレベルの<beans/>要素に囲まれた<bean/>要素によって設定されます。

ビーン定義はアプリケーションを構成する実際のオブジェクトに対応しています。ビーン定義は通常サービス層のオブジェクト、データアクセスオブジェクト(DAO)、StrutsのActionのようなプレゼンテーションオブジェクト、HibernateのSessionFactoryのような基盤オブジェクト、JMSのキューといったオブジェクトのために定義されます。一方、粒度の細かいドメインオブジェクトがコンテナ中で設定されることは稀です。なぜならドメインオブジェクトの保存やロードはDAOやビジネスロジックの責任範囲であるからです。

XMLによる設定メタデータの基本的な構造を例示します。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

<bean id="..." class="...">
<!-- collaborators and configuration for this bean go here -->
</bean>

<bean id="..." class="...">
<!-- collaborators and configuration for this bean go here -->
</bean>

<!-- more bean definitions go here -->

</beans>




リソース

ApplicationContextのコンストラクタに渡されるパスは、リソースの位置を示す文字列です。これによってコンテナはJavaのCLASSPATH以下にあるローカルファイルシステムなど、さまざまな外部リソースから設定メタデータを読み込むことができます。

Spring IoCコンテナについて理解したのちに、Springのリソースの概要についてより詳しく知りたい場合は第4章 「リソース」の記述を参照してください。


原文:http://static.springframework.org/spring/docs/2.5.x/reference/beans.html#beans-factory
ラベル:SpringFramework2.5
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。