spring対beanの管理詳細
2957 ワード
ビーンを作成する3つの方法:
最初の方法:標準のコンストラクタを使って作成します.springのプロファイルにbeanタグを使用して、idとクラス属性を付けた後、他の属性とラベルがない場合.標準のコンストラクタを使ってビーンオブジェクトを作成しますが、クラスにデフォルトのコンストラクタがないとオブジェクトは作成できません.参構造を使用すると、beanラベルの体内にコンストラクタ-argラベルを使用して構造パラメータの指定を配置します.
第二の方法:非静的工場における方法を用いてオブジェクトを作成する(あるクラスの方法を用いてオブジェクトを作成し、スプリング容器に保存する).beanラベルには、ファクトリー・ビーン属性指定容器のうちのもう一つのbenのidを使用して、工場オブジェクトを指定する.ファクトリー-methodを使用して工場オブジェクトの指定方法を使用して、現在のオブジェクトを作成します.パラメータ使用指定
模擬工場(クラスはJarのカバンの中に存在するかもしれません.ソースを修正する方式でデフォルトの構造関数を提供することはできません.)
第3の方法:工場内の静的方法を用いてオブジェクトを作成する(あるクラスの静的方法を用いてオブジェクトを作成し、スプリング容器に保存する).beanラベルには、class属性を用いて静的工場類の全類名を指定し、factory-method指定静的方法の名称パラメータを使用して
アナログの工場(クラスはJarのカバンの中に存在するかもしれません.ソースを修正することでデフォルトの構造関数を提供できません.)public class Static Factory{
beanタグのscope属性作用:beanの作用範囲を指定するための値取り:一般的に使用されるのは、単一例のおよび複数例のsingleton:単一例の(デフォルト値)prototype:マルチケースのrequest:ウェブアプリケーションに作用する要求範囲session:ウェブアプリケーションに作用するセッション範囲global-session:クラスタ環境に作用するセッション範囲(グローバルセッション範囲)クラスタ環境でない場合、それはセッションです.
一つの例の対象は生まれます.容器を作る時にオブジェクトが生きている限り、オブジェクトが生きているまま死亡します.容器は破壊され、対象は消滅します.一つの例の対象のライフサイクルと容器は同じです.Main方法はすべてのプログラムの入口です.mainメソッドが終わったら、現在のスレッドはメモリを占有してすべて解放します.この時廃棄方法を起動しないでリリースされます.
複数例の対象は生まれます.対象を使う時にはspringフレームは私達のために生きています.対象は使用中であれば生きています.死亡:対象が長く使われず、他の対象がない場合は、Javaのゴミ回収器で回収されます.
最初の方法:標準のコンストラクタを使って作成します.springのプロファイルにbeanタグを使用して、idとクラス属性を付けた後、他の属性とラベルがない場合.標準のコンストラクタを使ってビーンオブジェクトを作成しますが、クラスにデフォルトのコンストラクタがないとオブジェクトは作成できません.参構造を使用すると、beanラベルの体内にコンストラクタ-argラベルを使用して構造パラメータの指定を配置します.
id:取得時の一意識別クラス:作成対象の全限定クラス名を取得する第二の方法:非静的工場における方法を用いてオブジェクトを作成する(あるクラスの方法を用いてオブジェクトを作成し、スプリング容器に保存する).beanラベルには、ファクトリー・ビーン属性指定容器のうちのもう一つのbenのidを使用して、工場オブジェクトを指定する.ファクトリー-methodを使用して工場オブジェクトの指定方法を使用して、現在のオブジェクトを作成します.パラメータ使用指定
模擬工場(クラスはJarのカバンの中に存在するかもしれません.ソースを修正する方式でデフォルトの構造関数を提供することはできません.)
public class InstanceFactory {
public IAccountService getAccountService(){
return new AccountServiceImpl();
}
}
bean.xmlに配置する
第三の方法:工場内の静的方法を用いて対象を作成する.第3の方法:工場内の静的方法を用いてオブジェクトを作成する(あるクラスの静的方法を用いてオブジェクトを作成し、スプリング容器に保存する).beanラベルには、class属性を用いて静的工場類の全類名を指定し、factory-method指定静的方法の名称パラメータを使用して
で指定する.アナログの工場(クラスはJarのカバンの中に存在するかもしれません.ソースを修正することでデフォルトの構造関数を提供できません.)public class Static Factory{
public static IAccountService getAccountService(){
return new AccountServiceImpl();
}
}bean.xmlにあります
beanの役割範囲調整:beanタグのscope属性作用:beanの作用範囲を指定するための値取り:一般的に使用されるのは、単一例のおよび複数例のsingleton:単一例の(デフォルト値)prototype:マルチケースのrequest:ウェブアプリケーションに作用する要求範囲session:ウェブアプリケーションに作用するセッション範囲global-session:クラスタ環境に作用するセッション範囲(グローバルセッション範囲)クラスタ環境でない場合、それはセッションです.
オブジェクトのライフサイクル:一つの例の対象は生まれます.容器を作る時にオブジェクトが生きている限り、オブジェクトが生きているまま死亡します.容器は破壊され、対象は消滅します.一つの例の対象のライフサイクルと容器は同じです.Main方法はすべてのプログラムの入口です.mainメソッドが終わったら、現在のスレッドはメモリを占有してすべて解放します.この時廃棄方法を起動しないでリリースされます.
複数例の対象は生まれます.対象を使う時にはspringフレームは私達のために生きています.対象は使用中であれば生きています.死亡:対象が長く使われず、他の対象がない場合は、Javaのゴミ回収器で回収されます.
/**
*
*/
public class AccountServiceImpl implements IAccountService {
public AccountServiceImpl(){
System.out.println(" ");
}
public void saveAccount(){
System.out.println("service saveAccount 。。。");
}
public void init(){
System.out.println(" 。。。");
}
public void destroy(){
System.out.println(" 。。。");
}
}
bean.xmlでinit-method:初期化方法destroy-method:廃棄方法