ホームページ  >  記事  >  Java  >  Spring がオブジェクトを作成する方法の詳細な説明

Spring がオブジェクトを作成する方法の詳細な説明

零下一度
零下一度オリジナル
2017-07-21 22:09:022308ブラウズ

Spring の構築については、「Spring フレームワークの構築の簡単な分析」を参照してください。テストする前に、環境を設定し、関連する Jar パッケージをインポートする必要があります。 Spring によって作成されたオブジェクトは、スコープを通じて指定されない限り、デフォルトでシングルトン モードになります。

1. コンストラクターを通じてオブジェクトを作成します。

2.1 引数なしのコンストラクター + セッターメソッドを使用して値を注入する

オブジェクトを作成する最も基本的な方法では、引数なしのコンストラクターのみが必要です (クラスにはコンストラクターは書かれていません。デフォルトではコンストラクターがあります) 、 Any コンストラクターと書かれた場合、デフォルトの引数なしのコンストラクターは自動的に作成されません!!) とフィールドのセッター メソッド。

人物クラス:

Spring がオブジェクトを作成する方法の詳細な説明
package com.mc.base.learn.spring.bean;public class Person {private String name;private Integer id;    public String getName() {return name;
    }public void setName(String name) {this.name = name;
    }public Integer getId() {return id;
    }public void setId(Integer id) {this.id = id;
    }

    @Overridepublic String toString() {return "Person [name=" + name + ", id=" + id + "]";
    }

}
Spring がオブジェクトを作成する方法の詳細な説明

XML構成:

Spring がオブジェクトを作成する方法の詳細な説明
<?xml  version="1.0" encoding="UTF-8"?><beans><bean><property></property><property></property></bean>    
</beans>
Spring がオブジェクトを作成する方法の詳細な説明

本質は次のとおりです:

SpringContext はパラメータのない構造を使用します関数はオブジェクトを作成し、setter メソッドを使用してそれを割り当てます。したがって、パラメーターなしのコンストラクターが存在しない場合、Spring コンテキストがオブジェクトを作成するときにエラーが報告されます。

Spring がオブジェクトを作成する方法の詳細な説明
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'person' defined in class path resource [applicationContext.xml]: Instantiation of bean failed; 
nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.mc.base.learn.spring.bean.Person]: No default constructor found; 
nested exception is java.lang.NoSuchMethodException: com.mc.base.learn.spring.bean.Person.
Spring がオブジェクトを作成する方法の詳細な説明

2.2 パラメーター化されたコンストラクターを使用して、

personクラスを直接注入します:

Spring がオブジェクトを作成する方法の詳細な説明
package com.mc.base.learn.spring.bean;public class Person {private String name;private Integer id;    public Person(String name, Integer id) {super();this.name = name;this.id = id;
    }public String getName() {return name;
    }public void setName(String name) {this.name = name;
    }public Integer getId() {return id;
    }public void setId(Integer id) {this.id = id;
    }

    @Overridepublic String toString() {return "Person [name=" + name + ", id=" + id + "]";
    }

}
Spring がオブジェクトを作成する方法の詳細な説明

XML 構成:

Spring がオブジェクトを作成する方法の詳細な説明
<?xml  version="1.0" encoding="UTF-8"?><beans><bean><constructor-arg></constructor-arg><constructor-arg></constructor-arg></bean>    
</beans>
Spring がオブジェクトを作成する方法の詳細な説明

2. 静的ファクトリーメソッドを通じてオブジェクトを作成します。

静的ファクトリーオブジェクトは、コンテナーがロードされるときに作成されます。テストは次のとおりです。

package com.mc.base.learn.spring.factory;import com.mc.base.learn.spring.bean.Person;public class PersonStaticFactory {    public static Person createPerson(){return new Person();
    }    /** * 工厂方法带有参数如何处理?
     * @Title: createPerson 
     * @Description: TODO(这里用一句话描述这个方法的作用) 
     * @param  @param id
     * @param  @param name
     * @param  @return 
     * @return Person    返回类型 
     * @throws     */public static Person createPerson(Integer id,String name){return new Person(name,id);
    }
}
3. インスタンス ファクトリを通じてオブジェクトを作成します。 Spring がオブジェクトを作成する方法の詳細な説明インスタンスファクトリはインスタンスを通じてオブジェクトを呼び出しますが、取得されたオブジェクトは最終的に単一インタレストモードになります。インスタンス ファクトリと静的ファクトリによって作成されるオブジェクトはどちらもシングルトン モードです。この 2 つの実際の違いは、オブジェクトの作成時に静的ファクトリが作成されるのに対し、インスタンス ファクトリはメソッドの作成時に作成されます。と呼ばれます。 Java 設計パターンのシングルトン パターン設計 (ハングリーマン スタイルとレイジーマン スタイル) を知っている読者は、ここでの静的ファクトリ パターンとインスタンス ファクトリ パターンについてある程度の経験があるはずです。もちろん、上記のオブジェクトの作成では、オブジェクトの作成時にデフォルトのパラメーターを渡すだけでなく、パラメーターを渡すこともできます。 setter メソッドを後で渡します パラメータを渡します。

以上がSpring がオブジェクトを作成する方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。