Spring の構築については、「Spring フレームワークの構築の簡単な分析」を参照してください。テストする前に、環境を設定し、関連する Jar パッケージをインポートする必要があります。 Spring によって作成されたオブジェクトは、スコープを通じて指定されない限り、デフォルトでシングルトン モードになります。
オブジェクトを作成する最も基本的な方法では、引数なしのコンストラクターのみが必要です (クラスにはコンストラクターは書かれていません。デフォルトではコンストラクターがあります) 、 Any コンストラクターと書かれた場合、デフォルトの引数なしのコンストラクターは自動的に作成されません!!) とフィールドのセッター メソッド。
人物クラス:
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 + "]"; } }
XML構成:
<?xml version="1.0" encoding="UTF-8"?><beans><bean><property></property><property></property></bean> </beans>
本質は次のとおりです:
SpringContext はパラメータのない構造を使用します関数はオブジェクトを作成し、setter メソッドを使用してそれを割り当てます。したがって、パラメーターなしのコンストラクターが存在しない場合、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.
personクラスを直接注入します:
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 + "]"; } }
XML 構成:
<?xml version="1.0" encoding="UTF-8"?><beans><bean><constructor-arg></constructor-arg><constructor-arg></constructor-arg></bean> </beans>
静的ファクトリーオブジェクトは、コンテナーがロードされるときに作成されます。テストは次のとおりです。
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); } }
以上がSpring がオブジェクトを作成する方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。