2017-04-17 20 views
5

私は春の博士のコアコンテナを読んでいましたrefの親のの目的を理解したいときに協力者を注入すると、親コンテキストの子コンテキストまたは親コンテナと現在のコンテナのこの概念が見つかりました。これは私が混乱する部分ですそれ:親属性を介してターゲットBeanを指定 This part of doc春の親コンテキストと子コンテキストの違いは何ですか?

は現在 のコンテナの親コンテナであるBeanへ の参照を作成します。親属性の値は、 ターゲットBeanのid属性、またはターゲットBeanの名前 属性の値のいずれかと同じであり、ターゲットBeanは親の コンテナに存在する必要があります1。このBean参照バリアント は、主にコンテナの階層を持ち、 既存のBeanを親コンテナにラップし、親Beanと同じ名前の を持つプロキシを使用する場合に使用します。

<!-- in the parent context --> 
<bean id="accountService" class="com.foo.SimpleAccountService"> 
    <!-- insert dependencies as required as here --> 
</bean> 
<!-- in the child (descendant) context --> 
<bean id="accountService" <!-- bean name is the same as the parent bean --> 
    class="org.springframework.aop.framework.ProxyFactoryBean"> 
    <property name="target"> 
     <ref parent="accountService"/> <!-- notice how we refer to the parent bean --> 
    </property> 
    <!-- insert other configuration and dependencies as required here --> 
</bean> 

誰かが私にいくつかの助けや文脈のこの2種類の例を与えることができますか?そして、REF親の目的は、事前

答えて

3

アプリケーションのコンテキスト内で実行春の豆にありがとうございものです。

アプリケーションコンテキストは、Springの高度なコンテナです。 BeanFactoryと同様に、BeanFactoryと同様に、Bean定義、ワイヤーBean、および ディスペンスBeanを要求に応じてロードできます。さらに、 の企業固有の機能(プロパティファイルから のテキストメッセージを解決する機能)と、興味のあるイベントリスナーに アプリケーションイベントを公開する機能を追加しました。このコンテナは、org.springframework.context.ApplicationContextインタフェースで定義された です。 https://www.tutorialspoint.com/spring/spring_applicationcontext_container.htm

各アプリケーションコンテキストのためには、多くのコンフィギュレーションファイル、設定クラスまたはその両方が混在していることができます。

次のようなコードでアプリケーション・コンテキストを作成することができます。

ApplicationContext context = new FileSystemXmlApplicationContext("Beans.xml"); 

そしてcontext.getBeanまたは@autowiredで豆を得ます。

コンテキスト階層を必要とする(または必要とする)場合があります。この場合、Springは親コンテキストを指定する方法を提供します。このコンストラクタを見ると、コンテキストの親を受け取ることがわかります。

http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/support/FileSystemXmlApplicationContext.html#FileSystemXmlApplicationContext-org.springframework.context.ApplicationContext-

あなたが親コンテキストは、子コンテキストのと同じタイプである見ることができるように、彼らの両方がhttp://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/ApplicationContext.htmlです。

違いは、親子関係によって関連があることです。構成(インポート)関係ではありません。

これはSpring MVCアプリケーション内にある最も一般的なケースです。このアプリケーションは2コンテキストを持ち、fristはディスパッチャーサーブレットコンテキストで、もう1つはルートコンテキストです。 ここでは、関係を見ることができます http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-servlet

ここでは、春のブートアプリケーションのアプリケーションコンテキストの階層の例を見ることができます。

https://dzone.com/articles/spring-boot-and-application-context-hierarchy

+0

春のmvcが最高の例だとよく説明されています、ありがとう –

関連する問題