2008年07月04日

3.2.2. Instantiating a container

3.2.2 コンテナのインスタンス化
Spring IoCコンテナのインスタンス化手順はいたって単純です。

ApplicationContext context = new ClassPathXmlApplicationContext(
new String[] {"services.xml", "daos.xml"});

// an ApplicationContext is also a BeanFactory (via inheritance)
BeanFactory factory = context;


3.2.2.1 XMLによる設定メタデータを組み合わせる
コンテナ定義を複数のXMLファイルに分割して使用することは利益をもたらす場合があります。複数ファイルに分割されたApplicationContextをロードする際には、複数のリソースパスを受け取るApplicationContextのコンストラクタを使用します。BeanFactoryは複数のビーン定義を順に読み込んでいきます。

一般的な場合にはこの方法を使用することをお勧めします。なぜかといえばコンテナ設定ファイルから、他のファイルとの関連を取り除くことができるからです。しかしながら<import/>要素をひとつまたは複数使用することで他のファイルからビーン定義を読み込むこともできます。以下がサンプルです。


<beans>

<import resource="services.xml"/>
<import resource="resources/messageSource.xml"/>
<import resource="/resources/themeSource.xml"/>

<bean id="bean1" class="..."/>
<bean id="bean2" class="..."/>

</beans>


この例では3つの外部ファイル(services.xml、messageSource.xml、themeSource.xml)からビーン定義が読み込まれています。これらのファイルの場所は、インポートを記述しているファイルからの相対パスと解釈されます。したがってこのケースではservices.xmlではこのファイルと同じディレクトリになければならず、またmessageSource.xmlとthemeSource.xmlはこのファイルがあるディレクトリ以下のresourcesディレクトリの中に配置されていなければなりません。先頭のスラッシュは無視されますが、相対パスとして扱われることを表すことができるため、スラッシュを使用しないよりはベターな形式かもしれません。インポートされるファイルはSpringのスキーマもしくはDTDに準拠した妥当なXMLによる(トップレベル要素として<:bean/%gt;要素を持った)ビーン定義ファイルでなければなりません。
※注
相対パスにおいて「../」を使用して親ディレクトリを参照させることは可能ですが、アプリケーションの外側のファイルに依存することになるため推奨されていません。特に「classpath:」URL(たとえば「classpath:../services.xml」)は実行時のパス解決が「最も近い」クラスパスルートを使用して親ディレクトリを参照しようとするためお勧めできません。これはクラスパスの変更によって今までと異なるディレクトリが使用される可能性があり、ひ弱なアプリケーションになってしまいます。
また相対ではなく絶対パスによる指定(たとえば「file:C:/config/services.xml」や「classpath:/config/services.html」)をすることもできますが、その場合にはアプリケーションの設定ファイルがその特定のパスに固定されてしまうことに注意してください。一般的には、たとえば実行時のJVMのシステムプロパティーによって解決される「${...}」プレースホルダを使用するなど、絶対パスを使用する際には何らかの対応をするほうが良いでしょう。



原文:http://static.springframework.org/spring/docs/2.5.x/reference/beans.html#beans-factory-instantiation
この記事へのコメント
Hey There. I found your blog using msn. This is a very well written article. I?l be sure to bookmark it and come back to read more of your useful information. Thanks for the post. I will definitely comeback. <a href="http://www.kutuyasu1.com">puma スニーカー</a><a href="http://www.wafchesjp.com">セイコー 腕時計</a><a href="http://www.wafchesjp.com">seiko 腕時計</a><a href="http://watchesforjp.com">腕時計 レディース</a><a href="http://watchesforjp.com">腕時計 レディース</a><a href="http://www.watchesforjapan.com">ブライトリング</a><a href="http://www.oakleyjapan.cc">オークリー サングラス</a> セイコー 腕時計 http://www.wafchesjp.com
Posted by セイコー 腕時計 at 2013年06月28日 03:07
Howdy! Someone in my Facebook group shared this site with us so I came to give it a look. I'm definitely loving the information. I'm bookmarking and will be tweeting this to my followers! Fantastic blog and brilliant design. <a href="http://www.kutuyasu1.com">puma スニーカー</a><a href="http://www.wafchesjp.com">セイコー 腕時計</a><a href="http://www.wafchesjp.com">seiko 腕時計</a><a href="http://watchesforjp.com">腕時計 レディース</a><a href="http://watchesforjp.com">腕時計 レディース</a><a href="http://www.watchesforjapan.com">ブライトリング</a><a href="http://www.oakleyjapan.cc">オークリー サングラス</a> セイコー 腕時計 http://www.wafchesjp.com
Posted by セイコー 腕時計 at 2013年06月28日 03:08
グッチ バッグ 偽物
Posted by 競泳用水着 at 2013年07月17日 14:49
3.2.2. Instantiating a container: Spring Framework 2.5 和訳(日本語訳)
Posted by ルブタン 通販 at 2013年07月21日 04:29
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

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


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

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

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