2016-08-02 19 views
2

私は春になるとアプリケーションのコンテキストと全く混同します。私がspring(単純なスプリング)を使用する場合はbeans.xmlを作成し、次にmain()メソッドからApplicationコンテキストを呼び出します。スプリングコンテキストの割り当て方法は?

ApplicationContext context = new FileSystemXmlApplicationContext 
      ("C:/Users/ZARA/workspace/HelloSpring/src/Beans.xml"); 

すべてがうまくいきます。しかし、私は上のディレクトリまたは別のディレクトリ(例えば)上のファイルを移動する場合、それは大丈夫だろうかわからない?

spring-mvcには、作成する各DispatcherServletのコンテキストがあり、いくつかのBeanを指定すると、すべてのサーブレットに共通のコンテキストがあります。どのように指定するのですか? web.xmlには?一般的に は、(私はアクションで春を読んで私は、この瞬間を説明してください、私はほとんどすべてのundesrstandが、これらのトリッキーな瞬間がここに表示されません事前

+0

MVCには、2つの異なるコンテキストがあります。アプリケーションコンテキストはルートアプリケーションコンテキスト(1つ)です.WebApplicationContextは、作成するディスパッチャサーブレットの数に基づいて複数のことができます。 Springはデフォルトでwebapps WEB-INFフォルダから "xxx-servlet.xml"という名前のファイルをロードします。ここでxxxはweb.xmlのサーブレット名です。 – ankidaemon

+0

アプリケーション・コンテキスト宣言の場合:contextConfigLocationパラメータを使用してweb.xmlにコンテキスト構成ファイル名を明示的に宣言していない場合、SpringはWEB-INFフォルダのapplicationContext.xmlを検索し、このファイルが見つからない場合はFileNotFoundExceptionをスローします。 – ankidaemon

+0

web.xmlにアプリケーション全体の基本アプリケーションコンテキストを指定する必要がありますか? **** - servlet.xmlのサーブレットのためのものそして、私はweb.xml(spring-mvcの場合)にこれらの設定を書き込む必要がありますか? 私の知り合い(: – Alex

答えて

1

の私の悪い英語のため申し訳ありません

FileSystemXmlApplicationContext java docから:。

ファイルシステムまたはURLからのコンテキスト定義ファイルを相対ファイルシステムの場所として解釈するスタンドアロンXMLアプリケーションコンテキスト(例: "mydir/myfile.txt")。テストハーネスおよびスタンドアロン環境

キーワードはコンテキスト定義ファイルです。したがって、必要な数のXMLファイルにパスを渡すことができます。それに加えて、アプリケーション・コンテキストを作成することができますし、親として新しいものに渡し:

FileSystemXmlApplicationContext(String[] configLocations, ApplicationContext parent) 

このように、簡単にコンテキストの必要な階層を作成することができます。私は別のディレクトリにすべての上のディレクトリにファイルを移動する場合

 ApplicationContext parentContext = new FileSystemXmlApplicationContext 
      ("C:/some/path/ParentBeans.xml"); 

     ApplicationContext childContext = new FileSystemXmlApplicationContext 
      (new String[]{"C:/some/path/ChildBeans1.xml", "C:/some/path/ChildBeans2.xml"}, parentContext); 

(例えば)それは大丈夫でしょうか?

ファイルへのパスが正しく、到達可能である限り、それはOKです。

+0

お返事ありがとうございます!!!! – Alex

関連する問題