spring定義とスコープ

2471 ワード

ディレクトリ:
Springの基本概念を理解する
Springの簡単な例
ビーンの定義は簡単に言えば、ビーンはSpring容器に管理されているJavaオブジェクトであり、Spring容器は自動的にビーンの実用化を完了します.
容器は何ですか?上編の簡単なSpringの例を見たら.
下記のコードがあります.
Application Comptext context=new Class PathXml Application Contect(「application Contect.xml」);contextは一つの容器です.もちろんこれは公式の一番正確な定義ではありませんが、一応勉強してみます.この実用化対象は容器であることを知っています.
第二篇エッセイでは、配置文書の内容は以下の通りである.

    

bean定義時の属性リストは以下の通りです.
属性記述クラスという属性は強制的で、beanを作成するためのbeanクラスを指定します.nameという属性は、唯一のbean識別子を指定します.XMLベースの構成メタデータでは、IDおよび/またはname属性を使用して、bean識別子を指定することができます.scopeという属性は、特定のbean定義によって作成されたオブジェクトのスコープを指定し、beanスコープのチャプタで議論されます.constructor-argは依存関係を注入し、次の章で議論します.propertiesは依存関係を注入し、次の章で議論します.atowiring modeは依存関係を注入するために使われています.次の章で議論します.lazy-nitialzation mode遅延初期化のbeanは、IoC容器が最初に要求された時ではなく、起動時にbeanインスタンスを作成するとIoC容器に教えています.initializationメソッドは、beanのすべての必要な属性が容器に設定された後、コールバック方法を呼び出します.それはbeanのライフサイクルの章で討論します.destruction方法は、当該beanを含む容器が破壊された場合に、フィードバック方法を使用する.それはbeanのライフサイクルの章で討論します.
Beanのスコープ上の表では、scope属性はスコープを指定するために使用されます.その値と説明は以下の通りである.
スコープ記述singletonは、spring IoC容器に1つのBeanインスタンスしか存在しない.Beanは、単一の例で存在し、デフォルト値
prototypeは、コンテナからBeaビンを呼び出すたびに、新しい例を返します.すなわち、getBeanを呼び出すたびに、newXxBen()requestを実行するのに相当します.HTTP要求のたびに、新しいBeanを作成します.この作用領域はWebApplection環境sessionと同じHTTP Sessionを共有します.異なるSessionを使用します.WebApplication Contect環境global-sessionにのみ適用されます.この運用領域はWebApplication Conteet環境にのみ適用されます.
次に、私たちはよく使う作用域を二つ書きます.
まずクラスを用意します.このクラスは変わりません.
public class Category{/属性prvate String name}//この属性を設定する方法public void set Name{string name}{this.name=name}/この属性を取得する方法public void getName(){System.out.print.println}作用:singleドメイン
設定ファイル:

試験クラス
public class TestSpring{public static void main(String[]args){/SpringのAPI Application Conttext.appication Contact.xmlは自分で作成したプロファイルApplicatext context=new Class PathmlApplicaplication Contect;/設定ファイルには設定されておらず、設定方法で属性の値category.set Name(「初めての設定」)を設定し、category.get Name()//2番目のオブジェクトCategory category 1=(Category)context.getBen(「c」)を設定せずに、直接に所属値を取得したcategory 1.
最初の設定
同じ内容を2回出力します.idがcのbeanは1つしかないと説明しています.2回返したのは同じ値です.
prototypeのスコープ:
プロファイルのscopeをprototypeに変更します.他のコードは変更されません.テストクラスを含みます.
最後の出力:
初めてnullを設定します.
コンテナがgetBeanを呼び出すたびに戻ってくるのは新しい例であるため、最初の設定は第二のオブジェクトに対して無効となります.