Spring 創建對象的三種方式
- 通過構造方法創建
- 無參構造創建:默認情況.
- 有參構造創建:需要明確配置
- 需要在類中提供有參構造方法
- 在 applicationContext.xml 中設置調用哪個構造方法創建對象
- 如果設定的條件匹配多個構造方法執行最後的構造方法
- index: 參數的索引,從 0 開始
- name: 參數名
- type:類型(區分開關鍵字和封裝類 int 和 Integer)
<bean id="peo" class="com.bjsxt.pojo.People">
<!-- ref 引用另一個bean. value 基本數據類型或 String 等 -->
<constructor-arg index="0" name="id" type="int" value="123"></constructor-arg>
<constructor-arg index="1" name="name"type="java.lang.String" value=" 張 三 ">
</constructor-arg>
</bean>
- 實例工廠
- 工廠設計模式:幫助創建類對象.一個工廠可以生產多個對象.
- 實例工廠:需要先創建工廠,才能生產對象
- 實現步驟:
2.3.1 必須要有一個實例工廠
public class PeopleFactory {
public People newInstance(){
return new People(1,"測試");
}
}
2.3.2 在applicationContext.xml中配置工廠對象和需要創建的對象
<bean id="factory"
class="com.bjsxt.pojo.PeopleFactory">
</bean>
<bean id="peo1" factory-bean="factory" factory-method="newInstance"></bean>
- 靜態工廠
- 不需要創建工廠,快速創建對象.
- 實現步驟
3.2.1 編寫一個靜態工廠(在方法上添加 static)
public class PeopleFactory {
public static People newInstance(){
return new People(1,"測試");
}
}
3.2.2 在 applicationContext.xml 中
<bean id="peo2" class="com.bjsxt.pojo.PeopleFactory" factory-method="newInstance"></bean>