Beanのインスタンス化とライフサイクル

Beanの使用

1Beanタグの基本構成

構成オブジェクトはSpringによって作成されます。

デフォルトでは、クラス内のパラメーターなしコンストラクターを呼び出します。パラメーターなしコンストラクターがない場合、正常に作成できません。

基本属性:

id:Springコンテナ内のBeanインスタンスの一意の識別子

クラス:Beanの完全修飾名

3.2Beanタグ範囲の構成

スコープ:オブジェクトのスコープを参照します。値は次のとおりです。

範囲 説明
シングルトン デフォルト値、シングルトン
プロトタイプ 多例的
リクエスト WEBプロジェクトでは、SpringはBeanオブジェクトを作成し、そのオブジェクトをリクエストフィールドに格納します
セッション WEBプロジェクトでは、SpringはBeanオブジェクトを作成し、そのオブジェクトをセッションフィールドに格納します。
グローバルセッション WEBプロジェクトでは、ポートレット環境に適用されます。ポートレット環境がない場合、globalSessionはセッションと同等です。

1)スコープの値がシングルトンの場合

Beanインスタンス化番号:1

Beanインスタンス化のタイミング:Springコアファイルがロードされたら、構成済みのBeanインスタンスをインスタンス化します

Beanのライフサイクル:

オブジェクトの作成:アプリケーションがロードされ、コンテナが作成されると、オブジェクトが作成されます

オブジェクトの実行:コンテナがそこにある限り、オブジェクトは常に生きています

オブジェクトの破棄:アプリケーションがアンロードされ、コンテナーが破棄されると、オブジェクトが破棄されます

2)スコープの値がプロトタイプの場合

Beanのインスタンス化の数:複数

Beanのインスタンス化のタイミング:getBean()メソッドが呼び出されたときにBeanをインスタンス化します

オブジェクトの作成:オブジェクトを使用する場合は、新しいオブジェクトインスタンスを作成します

オブジェクト操作:オブジェクトが使用されている限り、オブジェクトは常に存続します

オブジェクトの破棄:オブジェクトが長期間使用されない場合、Javaガベージコレクターによってリサイクルされます

3.3Beanのライフサイクル構成

init-method:クラスの初期化メソッドの名前を指定します

destroy-method:クラスのdestroyメソッドの名前を指定します

3.4Beanインスタンス化の3つの方法

1)引数なしの構築方法を使用してインスタンス化する

デフォルトの引数なしコンストラクターに従ってクラスオブジェクトを作成します。Beanに引数なしデフォルトのコンストラクターがない場合、作成は失敗します。

<bean id="userDao" class="com.itheima.dao.impl.UserDaoImpl"/>

2)ファクトリ静的メソッドのインスタンス化

ファクトリの静的メソッドはBeanインスタンスを返します

public class StaticFactoryBean {
    
    
    public static UserDao createUserDao(){
    
        
    return new UserDaoImpl();
    }
}
<bean id="userDao" class="com.itheima.factory.StaticFactoryBean" 
      factory-method="createUserDao" />

3)ファクトリインスタンスメソッドのインスタンス化

ファクトリの非静的メソッドはBeanインスタンスを返します

public class DynamicFactoryBean {
    
      
	public UserDao createUserDao(){
    
            
		return new UserDaoImpl(); 
	}
}
<bean id="factoryBean" class="com.itheima.factory.DynamicFactoryBean"/>
<bean id="userDao" factory-bean="factoryBean" factory-method="createUserDao"/>

おすすめ

転載: blog.csdn.net/david2000999/article/details/113030405