春のApplicationContextそしてたBeanFactory、ならびに春豆スコープの差

//从ApplicationContextの中取豆
ApplicationContextの交流=新ClassPathXmlApplicationContext( "COM / HSP / beans.xmlの"); 
ac.getBean( "beanId");
  我々はインスタンス化beans.xmlのに行ったとき、Bean内のコンフィギュレーション・ファイルはインスタンス化されます(使用するかどうかにかかわらず、その時Beanオブジェクト)、およびオブジェクトはシングルトンシングルトンであること。(豆人工の単相、スコープ=「シングルトン」、範囲=「プロトタイプ」の各Beanについて得られるように、各Beanはスコープ属性は任意に設定することができる新たな豆でいます)。
  利点:速い速度を使用する場合、事前にロードされました。
  短所:メモリの損失は、豆の全てがインスタンス化されているが、唯一のそれらの非常に少数使用することができます。
 
//从ビーン工厂取BEA N 
たBeanFactory工場=新しいXmlBeanFactory(新ClassPathResource( "COM / HSP / beans.xmlの")); 
factory.getBean( "beanId");
  あなたがBeanを取得するたBeanFactoryを使用する場合は、あなただけのインスタンス化コンテナあなたがgetBean Beanを使用する場合にのみ、豆のコンテナは、すぐにインスタンス化されることはありませんとき、リアルタイムで作成されます。
  利点:メモリを節約します。
  短所:スロー。
選択について:のみ彼らは、事前にメモリポイントの無駄をロードすることができるので、プロジェクト(90%)のほとんどは、ApplicationContextのを使用している、たBeanFactoryでモバイルプロジェクトで使用されます。
  もう一つ注意すべきは、デフォルトでは、Bean内のApplicationContextのインスタンスのXMLとシングルトンシングルトンです。各ビーンは、オブジェクトの唯一のインスタンスに関係なく、何回getBean()メソッドの呼び出し、REF依存、スプリング豆容器は一例に過ぎず何かかわらずです。しかし、男はその範囲の時間=「プロトタイプ」を設定すると、それは一つの例ではありませんが、XMLファイルをロードするときに、プロトタイプのプロトタイプの時間に設定したときに、Springフレームワークにはないので(インスタンス化されることはありません)あなたがBeanを作成する必要がありますどのように多くの事例を知っているので、それは単にインスタンスではありません。
コードをコピー
スコープのSpring Beanの春APIの解釈を添付:
豆説明: 春、あなたのアプリケーション(バックボーン)と春のIoCコンテナオブジェクトによって管理される、と呼ばれる豆の本体を構成する人々 。簡単に言えば、アセンブリおよびオブジェクトの管理、あるBeanが、加えて、BeanはアプリケーションでSpringコンテナの初期化や他のオブジェクトによって違いはありませんでしょう。豆、互いにBean構成間の依存関係は、メタデータによって説明します。 :豆は、スコープ   のBean定義を作成し、その本質は、クラスのBean定義「レシピ(レシピ)」を使用しての真の例を作成することです。レシピのBean定義が重要であり、それはあなたがに基づいて複数のインスタンスを作成することができ、クラスに非常によく似ている「処方箋」。 あなたはだけでなく、さまざまな設定値を制御することができますし、依存オブジェクトは、オブジェクトのスコープを制御することができます。この方法では、Javaクラスレベルの範囲を定義することなく、オブジェクトの範囲を選択できる柔軟性を構築することができます。春のフレームワークは、(3つの属性は、WebベースのSpringのApplicationContext、singgletonでのみ使用することができた後、プロトタイプがデスクトップ開発に使用することができます)5つのスコープをサポートしています。   図1は、シングルトン:豆の範囲はシングルトンである場合、次いで、ビーン定義が同じBeanを返すことID照合限り、唯一つの共有BeanインスタンススプリングIoCコンテナ、およびBeanのすべての要求が存在するであろうインスタンス。   注:シングルトンスコープは春のデフォルトのスコープです。XML Bean内シングルトンを定義する、ように構成されてもよいです。     <ビーンID =「empServiceImpl」クラス=「cn.csdn.service.EmpServiceImpl」スコープ=「シングルトン」>   2、プロトタイプ:ビーン定義オブジェクトの複数のインスタンス。Beanがもたらすプロトタイプスコープは、Beanの新しいインスタンスを作成する(別のBeanに注入される()メソッドを、またはコンテナ形式プログラムでgetBeanコール)ビーン要求のそれぞれです。
  経験によると、ステートフルBeanのプロトタイプのスコープを使用する必要があり、およびステートレスBeanにシングルトンスコープを使用する必要があります。

 

おすすめ

転載: www.cnblogs.com/yuebuxichen/p/12101293.html