BeanFactoryとApplicationContext


235

私はSpring Frameworkにかなり慣れていないので、これをいじって、次の会社のプロジェクトで使用するためにSpring MVCを評価する目的でいくつかのサンプルアプリをまとめました。これまでのところ、Spring MVCに表示されるものが本当に好きで、非常に使いやすく、ユニットテストに非常に適したクラスを作成することをお勧めします。

演習と同様に、サンプル/テストプロジェクトのメインメソッドを作成しています。私は間の正確な違いは約不明確だことの一つBeanFactoryApplicationContext-どのような条件で使用するのが適切でしょうか?

私はそれApplicationContextがextends BeanFactoryであることを理解していますが、単純なmainメソッドを作成しているだけの場合、ApplicationContext提供する追加機能が必要ですか?そして、正確にはどのような追加機能がApplicationContext提供されますか?

「main()メソッドでどちらを使用する必要があるか」の回答に加えて、このようなシナリオで使用する実装について、標準やガイドラインはありますか?main()メソッドは、XML形式であるBean /アプリケーション構成に依存するように作成する必要があります-それは安全な前提ですか、それともユーザーを特定の何かにロックしていますか?

そして、この答えはウェブ環境で変わりApplicationContextますか?私のクラスのいずれかがSpringを認識する必要がある場合、それらはより必要になる可能性がありますか?

助けてくれてありがとう。これらの質問の多くはおそらくリファレンスマニュアルで回答されていると思いますが、細かい櫛でマニュアルを読むことなく、これら2つのインターフェイスとそれぞれの長所/短所の明確な内訳を見つけるのに苦労しています。

回答:


209

春のドキュメントはこれで素晴らしいです:3.8.1。BeanFactoryまたはApplicationContext?。彼らは比較表を持っています、私はスニペットを投稿します:

豆工場

  • Beanのインスタンス化/配線

アプリケーションコンテキスト

  • Beanのインスタンス化/配線
  • 自動BeanPostProcessor登録
  • 自動BeanFactoryPostProcessor登録
  • 便利なMessageSourceアクセス(i18nの場合)
  • ApplicationEventの公開

したがって、アプリケーションコンテキスト側で提示されたポイントのいずれかが必要な場合は、ApplicationContextを使用する必要があります。


3
BeanFactoryは軽量ですが、Springを「実際に」使用する場合は、ApplicationContextを使用することもできます。その派手な機能を使用しない場合、オーバーヘッドはほとんどありませんが、それらは引き続き使用できます。 if / whenを使用する場合。
MetroidFan2002 2008年

2
「BeanPostPorcessorの自動登録」とはどういう意味ですか?それは、クラスがそのインターフェースを実装する必要がないことを意味しますか?
アビディ2014年

2
ApplicationContextは、BeanFactoryに対するAOPをサポートしています。
ininprsr

1
では、BeanFactoryコンストラクタパラメータを動的に渡すことができますが、ApplicationContextそれはできません。
ハーフブラッドプリンス

1
リンクされたSpringドキュメントからの重要な注意:「Spring 2.0以降のバージョンは、BeanPostProcessor拡張ポイントを(プロキシなどに影響を与えるために)頻繁に使用し、プレーンなBeanFactoryのみを使用している場合は、トランザクションなどのかなりの量のサポートを使用します。そして、AOPは有効になりません(少なくとも、あなたの側でいくつかの追加の手順がないと)。
mark.monteiro 2018

52

ばねは、IOCの容器の二種類を提供するものでありXMLBeanFactory、他方はですApplicationContext

+---------------------------------------+-----------------+--------------------------------+
|                                       | BeanFactory     |       ApplicationContext       |
+---------------------------------------+-----------------+--------------------------------+
| Annotation support                    | No              | Yes                            |
| BeanPostProcessor Registration        | Manual          | Automatic                      |
| implementation                        | XMLBeanFactory  | ClassPath/FileSystem/WebXmlApplicationContext|
| internationalization                  | No              | Yes                            |
| Enterprise services                   | No              | Yes                            |
| ApplicationEvent publication          | No              | Yes                            |
+---------------------------------------+-----------------+--------------------------------+

ここに画像の説明を入力してください

  • FileSystemXmlApplicationContext 完全パスで読み込まれたBean。
  • ClassPathXmlApplicationContext CLASSPATHを介してロードされたBean
  • XMLWebApplicationContextそしてAnnotationConfigWebApplicationContext豆は、Webアプリケーションのコンテキストによってロード。
  • AnnotationConfigApplicationContext Annotationベースの構成からのSpring Beanのロード。

例:

ApplicationContext applicationContext = new AnnotationConfigApplicationContext(BeansConfiguration.class);
  • ApplicationContextで初期化された、ContextLoaderListenerまたはでContextLoaderServlet定義され、web.xmlContextLoaderPlugin定義されたコンテナstruts-config.xmlです。

XmlBeanFactoryされた非推奨の賛成で春3.1のようDefaultListableBeanFactoryXmlBeanDefinitionReader


2
AnnotationConfigApplicationContext not -AnnotationConfigWebApplicationContext-(図のClassPathXmlApplicationContextの下)
Akhil Jain

48

私には、選択する主な相違点BeanFactoryを超えるがApplicationContext、そのように思わApplicationContextすべてのBeanのだろう事前にインスタンス化します。春のドキュメント

Springは、Beanが実際に作成されたときに、できるだけ遅くプロパティを設定し、依存関係を解決します。つまり、正しくロードされたSpringコンテナは、オブジェクトまたはその依存関係の1つを作成する際に問題が発生した場合に、オブジェクトをリクエストしたときに例外を生成できます。たとえば、Beanは、プロパティが欠落しているか無効であるために例外をスローします。このように一部の構成問題の可視化が遅れる可能性があるため、デフォルトでApplicationContext実装はインスタンス化されたシングルトンBeanを事前にインスタンス化します。実際に必要になる前にこれらのBeanを作成するための事前の時間とメモリを犠牲にして、後でではなくApplicationContextの作成時に構成の問題を発見します。シングルトンBeanが事前にインスタンス化されるのではなく遅延初期化されるように、このデフォルトの動作をオーバーライドすることもできます。

このため、BeanFactory分離されたBeanをテストするためにアプリケーション全体をロードしたくなかったので、最初に統合/パフォーマンステストでの使用を選択しました。ただし、-そして私が間違っていれば誰かが私を修正します-XML 設定をBeanFactoryサポートしていませんclasspath。したがってBeanFactoryApplicationContextそれぞれが私が欲しかった重要な機能を提供しますが、どちらも提供していませんでした。

私が知ることができるように、デフォルトのインスタンス化動作のオーバーライドに関するドキュメント内のメモは構成で行われ、それはBeanごとなので、XMLファイルで「lazy-init」属性を設定することはできません。テスト用とデプロイメント用のバージョンの維持にスタックしました。

私がやったことはClassPathXmlApplicationContext、そのようなテストで使用するために遅延読み込みのBean に拡張することでした:

public class LazyLoadingXmlApplicationContext extends ClassPathXmlApplicationContext {

    public LazyLoadingXmlApplicationContext(String[] configLocations) {
        super(configLocations);
    }

    /**
     * Upon loading bean definitions, force beans to be lazy-initialized.
     * @see org.springframework.context.support.AbstractXmlApplicationContext#loadBeanDefinitions(org.springframework.beans.factory.xml.XmlBeanDefinitionReader)
     */

    @Override
    protected void loadBeanDefinitions(XmlBeanDefinitionReader reader) throws IOException {
        super.loadBeanDefinitions(reader);
        for (String name: reader.getBeanFactory().getBeanDefinitionNames()) {
            AbstractBeanDefinition beanDefinition = (AbstractBeanDefinition) reader.getBeanFactory().getBeanDefinition(name);
            beanDefinition.setLazyInit(true);
        }
    }

}

2
単体テストが完全なSpringコンテキストをロードしている場合、それらは「単体テスト」ではなく、統合テストであると私は主張します。
matt b 2010

1
いい視点ね。私の場合、実際にはパフォーマンステストと統合テストのコンテキストからBeanをロードする必要があり、習慣から「ユニットテスト」を作成しました。私はそれに応じて私の答えを編集しました。
Lyle

2
BeanFactory doesn't support classpath XML configuration.:私はそれがないと思うstackoverflow.com/questions/5231371/...
エクストリームバイカー

29

Miguel Pingが答えたものに追加するために、これもこれに答えるドキュメントの別のセクションです:

短いバージョン:本当に正当な理由がない限り、ApplicationContextを使用してください。上記の推奨事項の「しかしなぜ」について、もう少し詳しく知りたい方は、読み続けてください。

(この質問を読むかもしれない将来の春の初心者のためにこれを投稿してください)


19
  1. ApplicationContext より好ましい方法です BeanFactory

  2. 新しいSpringバージョンでBeanFactoryは、に置き換えられApplicationContextます。しかしBeanFactory、下位互換性のためにまだ存在しています

  3. ApplicationContext extends BeanFactory 次の利点があります
    • テキストメッセージの国際化をサポートしています
    • 登録されたリスナーへのイベント発行をサポートします
    • URLやファイルなどのリソースへのアクセス

13

ApplicationContextの: それは春の設定ファイルで構成された春の豆をロードし、としてのSpring Beanのライフサイクルを管理してまでCONTAINER STARTS.Itは待機しませんWHEN getBean(「springbeanrefは」)と呼ばれています。

BeanFactory これは、Spring構成ファイルで構成されたSpring BeanをロードしgetBean( "springbeanref")を呼び出すときにSpring Beanのライフサイクルを管理します。したがってSpring Beanのライフサイクルの開始時にgetBean( "springbeanref")を呼び出すと。


12

誰かがすでに言ったようなモバイル環境にいるのでない限り、常にApplicationContextを使用する方が良いと思います。ApplicationContextにはより多くの機能があり、Spring構成ファイルを簡素化するのに役立つRequiredAnnotationBeanPostProcessor、AutowiredAnnotationBeanPostProcessor、CommonAnnotationBeanPostProcessorなどのPostProcessorsを確実に使用し、@ Required、@ PostConstruct、@ ResourceなどのアノテーションをBeanで使用できます。

ApplicationContextが提供するすべてのものを使用しない場合でも、とにかくそれを使用することをお勧めします。その後、メッセージやポストプロセッサなどのリソースのもの、またはトランザクションアドバイスなどを追加するために他のスキーマを使用することを決定した場合、 ApplicationContextが既にあり、コードを変更する必要はありません。

スタンドアロンアプリを作成している場合は、ClassPathXmlApplicationContextを使用してメインメソッドにApplicationContextを読み込み、メインBeanを取得して、そのrun()(または任意のメソッド)を呼び出してアプリを起動します。Webアプリを作成している場合は、web.xmlでContextLoaderListenerを使用してApplicationContextを作成し、JSP、JSF、JSTL、Struts、Tapestryなどを使用しているかどうかに関係なく、後でServletContextから取得できるようにします。 。

また、複数のSpring構成ファイルを使用でき、コンストラクター内のすべてのファイルをリストして(またはContextLoaderListenerのcontext-paramにリストして)ApplicationContextを作成するか、またはステートメントをインポートします。<import resource = "otherfile.xml" />を使用して、Spring構成ファイルを別のSpring構成ファイルにインポートできます。これは、メインメソッドでプログラムでApplicationContextを作成し、Spring構成ファイルを1つだけロードする場合に非常に便利です。


6

モバイルアプリケーションのようにリソースを節約する必要がない限り、ほとんどの場合、ApplicationContextが推奨されます。

XML形式に依存するかどうかはわかりませんが、ApplicationContextの最も一般的な実装は、ClassPathXmlApplicationContext、XmlWebApplicationContext、FileSystemXmlApplicationContextなどのXML実装であると確信しています。それらは私が今までに使用した唯一の3つです。

Webアプリを開発している場合は、XmlWebApplicationContextを使用する必要があると言っても安全です。

BeanにSpringを認識させたい場合は、BeanFactoryAwareやApplicationContextAwareを実装することができます。これにより、BeanFactoryまたはApplicationContextを使用して、実装するインターフェースを選択できます。


これはドキュメンテーションの関連セクションです。にApplicationContextはのすべての機能が含まれているため、メモリの消費が重要で、追加のキロバイト数が増えるなど、のようないくつかの限られた状況を除いBeanFactoryBeanFactory、を優先して使用することをお勧めしAppletます違いが生じる・異なる。ただし、ほとんどの「典型的な」エンタープライズアプリケーションおよびシステムでは、これApplicationContextを使用することになります。
M. Atif Riaz 2014年

6

BeanFactoryApplicationContextの違いは次のとおりです。

  1. BeanFactoryは遅延初期化を使用しますが、 ApplicationContextは熱心な初期化を使用します。BeanFactoryの場合、getBeans()メソッドを呼び出すとBeanが作成されますが、ApplicationContextオブジェクトの作成時にApplicationContextの場合、Beanが事前に作成されます。
  2. BeanFactoryは構文を使用してリソースオブジェクトを明示的に提供しますが、 ApplicationContextは独自にリソースオブジェクトを作成および管理します。
  3. BeanFactoryは国際化をサポートしていませんが、 ApplicationContextは国際化をサポートしてます。
  4. BeanFactoryではアノテーションベースの依存性注入はサポートされていませんが、アノテーションベースの依存性注入はApplicationContextでサポートされています。

BeanFactoryの使用:

BeanFactory beanfactory = new XMLBeanFactory(new FileSystemResource("spring.xml"));
 Triangle triangle =(Triangle)beanFactory.getBean("triangle");

ApplicationContextの使用:

ApplicationContext context = new ClassPathXMLApplicationContext("spring.xml")
Triangle triangle =(Triangle)context.getBean("triangle");

5

BeanFactoryApplicationContextはどちらも、春のIOCコンテナーからBeanを取得する方法ですが、それでもいくつかの違いがあります。

BeanFactoryは、いくつかのBeanをインスタンス化、設定、および管理する実際のコンテナです。これらのBeanは通常、相互に連携しているため、相互に依存関係があります。これらの依存関係は、BeanFactoryが使用する構成データに反映されます。

BeanFactoryApplicationContextはどちらもJavaインターフェースであり、ApplicationContextはBeanFactoryを拡張します。どちらもXML構成ファイルを使用した構成です。簡単に言えば、BeanFactoryは基本的なInversion of control(IoC)機能とDependency Injection(DI)機能を提供し、ApplicationContextは高度な機能を提供します機能をます。

BeanFactoryは、インターフェース " org.springframework.beans.factory " によって表されます。ここで、BeanFactoryには、複数の実装があります。

ClassPathResource resource = new ClassPathResource("appConfig.xml");
XmlBeanFactory factory = new XmlBeanFactory(resource);

  1. BeanFactorygetBean()メソッドを呼び出すとインスタンス化し、ApplicationContextはコンテナの開始時にシングルトンBeanをインスタンス化します。getBean()が呼び出されるのを待ちません。

  2. BeanFactoryは国際化をサポートしていませんが、ApplicationContextは国際化をサポートしています。

  3. BeanFactoryApplicationContextのもう1つの違いは、リスナーとして登録されているBeanにイベントを発行する機能です。

  4. 人気の実装の一たBeanFactoryのインターフェースがあるXMLBeanFactoryの人気の実装の一ながら、ApplicationContextののインタフェースがあるClassPathXmlApplicationContext

  5. 自動ワイヤリングとBeanFactoryを使用している場合は、ApplicationContextを使用している場合にXMLで構成できるAPIを使用してAutoWiredBeanPostProcessorを登録する必要があります 。要約すると、BeanFactoryはテストおよび本番以外の使用には問題ありませんが、ApplicationContextはより機能が豊富なコンテナ実装であり、BeanFactoryよりも推奨されます。

  6. BeanFactoryはデフォルトで遅延読み込みをサポートし、ApplicationContextはデフォルトでAggresive読み込みをサポートします。


#1をより明確に説明していただけますか?Spring構成ファイルでシングルトンBeanを定義した場合、Springコンテナは同じシングルトンを作成します。BeanFactoryまたはApplicationContextがそこにあるかどうかはどうですか?
pjj 2018年

4

Spring docsをソースとするBean Factoryとアプリケーションコンテキストの機能マトリックス

ここに画像の説明を入力してください

BeanFacotryとApplicationContextの機能のスクリーンショット


3

a。Beanファクトリとアプリケーションコンテキストの1つの違いは、以前はgetBean()メソッドを呼び出したときにのみBeanをインスタンス化するのに対し、ApplicationContextはコンテナの起動時にシングルトンBeanをインスタンス化し、getBeanが呼び出されるのを待機しません。

b。

ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");

または

ApplicationContext context = new ClassPathXmlApplicationContext{"spring_dao.xml","spring_service.xml};

プロジェクトの要件に応じて、1つ以上のxmlファイルを使用できます。ここでは2つのxmlファイルを使用しています。つまり、1つはdaoクラスの他のサービスクラスの構成の詳細用です。ここでClassPathXmlApplicationContextはApplicationContextの子です。

c。BeanFactoryコンテナは基本的なコンテナであり、オブジェクトの作成と依存関係の注入のみを実行できます。しかし、セキュリティ、トランザクション、メッセージングなどの他のサービスをアタッチして、ApplicationContextコンテナを使用する必要があるすべてのサービスを提供することはできません。

d。BeanFactoryは国際化対応、つまりi18nをサポートしていませんが、ApplicationContextは国際化をサポートしています。

e。BeanFactoryコンテナはAutoScanningの機能(サポートアノテーションベースの依存性注入)をサポートしていませんが、ApplicationContextコンテナはサポートしています。

f。Beanfactory Containerは、リクエスト時までBeanオブジェクトを作成しません。これは、Beanfactory ContainerがBeanをレイジーにロードすることを意味します。ApplicationContext Containerは、ロード時にのみシングルトンBeanのオブジェクトを作成します。それは、初期のロードがあることを意味します。

g。Beanfactory Containerは、Beanの2つのスコープ(シングルトンとプロトタイプ)のみをサポートします。ただし、ApplicationContextコンテナはすべてのBeanスコープをサポートします。


ポイントaとfは同じです。組み合わせることができます。
dhana1310

3

基本的に、2つの方法でスプリングコンテナオブジェクトを作成できます

  1. BeanFactoryを使用します。
  2. ApplicationContextを使用します。

どちらもインターフェースです

Springコンテナのオブジェクトを作成できる実装クラスを使用して

違いに来る

BeanFactory:

  1. アノテーションベースの依存性注入をサポートしていません。

  2. I18Nをサポートしていません。

  3. デフォルトでは、遅延読み込みをサポートしています。

  4. 複数の構成ファイルを構成することはできません。

例:BeanFactory context = new XmlBeanFactory(new Resource( "applicationContext.xml"));

ApplicationContext

  1. 注釈ベースの依存関係インジェクションをサポートします。-@ Autowired、@ PreDestroy

  2. I18Nをサポート

  3. そのデフォルトではAggresiveローディングをサポートします。

  4. 複数の構成ファイルを構成できます。

例:
ApplicationContext context = new ClasspathXmlApplicationContext( "applicationContext.xml");


1

Spring Docsからこのドキュメントを参照してください:

http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/beans.html#context-introduction-ctx-vs-beanfactory

5.15.1 BeanFactoryまたはApplicationContext?

十分な理由がない限り、ApplicationContextを使用してください。

ApplicationContextにはBeanFactoryのすべての機能が含まれているため、メモリの消費が重要で、追加のキロバイトによって違いが生じる可能性があるアプレットなどのいくつかの状況を除いて、BeanFactoryよりも一般的に推奨されます。ただし、ほとんどの一般的なエンタープライズアプリケーションおよびシステムでは、ApplicationContextを使用します。Spring 2.0以降は、BeanPostProcessor拡張ポイントを多用しています(プロキシなどに影響を与えるため)。プレーンなBeanFactoryのみを使用する場合、トランザクションやAOPなどのかなりの量のサポートは、少なくともあなたの側でいくつかの追加の手順なしでは効果を発揮しません。実際には構成に何も問題がないため、この状況は混乱を招く可能性があります。


1

ApplicationContextはBeanFactoryの兄妹であり、これはBeanFactoryが提供するすべてのものに加えて、他の多くのものを提供します。

標準のorg.springframework.beans.factory.BeanFactoryライフサイクル機能に加えて、ApplicationContext実装は、ApplicationContextAware Bean、およびResourceLoaderAware、ApplicationEventPublisherAware、MessageSourceAware Beanを検出して呼び出します。


1

リアルタイムのシナリオでは、Spring IOC Coreコンテナ(BeanFactory)とAdvanced J2EEコンテナ(ApplicationContext)の違いは次のとおりです。

  1. BeanFactoryは<bean></bean>、.getBean()メソッドを呼び出したときにのみ、spring.xmlファイル()で言及されているBean(つまり、POJOクラス)のオブジェクトを作成しますが、ApplicationContextはすべてのBeanのオブジェクトを作成します(<bean></bean>スコープがspring.xmlファイル自体をロードするときに、spring.xmlで構成された「プロトタイプ」として明示的に言及されています。

  2. BeanFactory:(ユーザー/メインクラスから明示的に呼び出した場合にのみBeanのオブジェクトを作成するため、遅延コンテナ)

    /*
     * Using core Container - Lazy container - Because it creates the bean objects On-Demand
     */
    //creating a resource
    Resource r = (Resource) new ClassPathResource("com.spring.resources/spring.xml");
    //creating BeanFactory 
    BeanFactory factory=new XmlBeanFactory(r);
    
    //Getting the bean for the POJO class "HelloWorld.java"
    HelloWorld worldObj1 = (HelloWorld) factory.getBean("test");

    ApplicationContext:(spring.xmlファイル自体のロード中にすべてのシングルトンBeanのオブジェクトを作成するためのEagerコンテナー)

    ApplicationContext context = new ClassPathXmlApplicationContext("com/ioc/constructorDI/resources/spring.xml");
  3. 技術的には、ApplicationContextを使用することをお勧めします。リアルタイムアプリケーションでは、アプリケーションがサーバー自体で起動している間にBeanオブジェクトが作成されるためです。これにより、オブジェクトがすでに応答可能であるため、ユーザー要求の応答時間が短縮されます。


Stack Overflowはフォーラムではないため、質問に直接回答するように回答を編集し、議論を招かないようにしました。
Jeffrey Bosboom、2016


0

シングルトンとプロトタイプのBeanスコープのみをサポートするため、非WebアプリケーションにはBeanFactoryを使用してください。

ApplicationContextコンテナはすべてのBeanスコープをサポートしているため、Webアプリケーションに使用する必要があります。


0

要約すれば:

ApplicationContextのたBeanFactoryのすべての機能が含まれています。通常は前者を使用することをお勧めします。

モバイルアプリケーションなど、メモリの消費が重要になる可能性のある限られた状況があります。

そのシナリオでは、より軽量なBeanFactoryを使用することは正当化できます。ただし、ほとんどのエンタープライズアプリケーションでは、ApplicationContextを使用します。

詳細については、私のブログ投稿を参照してください:

SpringのBeanFactoryとApplicationContextの違い–基本からのJava Springブログ


0

BeanFactoryとApplicationContextについて説明する必要があります。

BeanFactory: BeanFactoryは、SpringBean Containerにアクセスするためのルートインターフェースです。Beanコンテナーの基本的なクライアントビューがあります。そのインターフェースは、Bean定義の数を保持するオブジェクトクラスによって実装され、それぞれが文字列名
によって一意に識別されます。Bean定義に応じて、ファクトリは、インスタンスが含まれているオブジェクトのインスタンスまたは単一の共有インスタンスである可能性があるインスタンスを返します。返されるインスタンスのタイプは、Beanファクトリー構成によって異なります。
通常、Beanファクトリは、XMLなどの構成ソースに格納されているすべてのBean定義をロードします。

BeanFactoryは、依存性注入の基本的なサポートを提供する最も単純なコンテナです

アプリケーションコンテキスト アプリケーションコンテキストは、Springアプリケーションとの中心的なインターフェースであり、アプリケーションに構成情報を提供します。Bean Factory Interfaceを実装しています。

アプリケーションコンテキストは、プロパティファイルからのテキストメッセージを解決する機能など、エンタープライズ固有の機能の事前レベルの追加コンテナです。

ApplicationContextは以下を提供します。

アプリケーションコンポーネントにアクセスするためのBeanファクトリメソッド。ListableBeanFactoryから継承されます。一般的な方法でファイルリソースをロードする機能。ResourceLoaderインターフェースから継承されます。登録されたリスナーにイベントを発行する機能。ApplicationEventPublisherインターフェイスから継承されます。メッセージを解決し、国際化をサポートする機能。MessageSourceインターフェイスから継承されます。親コンテキストからの継承。子孫コンテキストの定義が常に優先されます。これは、たとえば、単一の親コンテキストをWebアプリケーション全体で使用できる一方で、各サーブレットには他のサーブレットの子コンテキストとは独立した独自の子コンテキストがあることを意味します。標準のBeanFactoryライフサイクル機能に加えて、

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.