Spring自學之創建對象的三種方式總結

 

Person類(無有參構造方法):

package com.li.spring;

public class Person {
    
    private String name;
    private int age;
    
    public Person(){
        System.out.println("初始化構造器");
    }
    public void setName(String name) {
        System.out.println("調用了設置屬性");
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void hello(){
        System.out.println("Hello: " + name);
    }

    @Override
    public String toString() {
        return "HelloWorld [name=" + name + ", age=" + age + "]";
    }

}

 

1.通過構造函數的創建

 1.1通過無參構造函數(默認情況)

<bean id="person" class="com.li.spring.Person" ></bean>

 1.2通過有參構造函數(需要在Person添加有參構造方法,同時爲屬性賦值)

<bean id="person" class="com.li.spring.Person" >
      <constructor-arg index="0" value="someone"></constructor-arg>
      <constructor-arg index="1" value="20"></constructor-arg> 
</bean>

2.通過工廠模式創建

package com.li.spring;

public class PersonFactory {
    
    public Person createPerson(){
        return new Person();
        
    }
}

xml中:

<bean id="personFactory" class="com.li.spring.PersonFactory"></bean>
<bean id="person" factory-bean="personFactory" factory-method="createPerson"></bean>

3.使用靜態工廠進行創建(在工廠的基礎上直接加上static,不需要創建對象,直接使用)

package com.li.spring;

public class PersonFactory {
    
    public static Person createPerson(){
        return new Person();
        
    }
}

xml中:

<bean id="person" class="com.li.spring.PersonFactory" factory-method="createPerson"></bean> 

不妥之處,請賜教。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章