一堕战、概述
? ? ? ? 雖然有幾種方式可以創(chuàng)建對象,但是? (強烈建議通過類的無參構(gòu)造方法創(chuàng)建對象)引几。
? ? ? ? 其余幾種方式昧互,在類沒有無參構(gòu)造時再使用。
二伟桅、通過類的無參構(gòu)造方法創(chuàng)建對象
????????Spring入門案例中敞掘,就是通過類的無法構(gòu)造方法創(chuàng)建對象。
? ? ? ? 這種方式要求類有無參構(gòu)造楣铁。因此我們創(chuàng)建類的時候玖雁,盡量添加無參構(gòu)造
三、通過靜態(tài)工廠創(chuàng)建對象
????????創(chuàng)建靜態(tài)工廠類
? ? ? ? 配置bean
????????<bean id="person" class="com.dreamguard.factory.PersonFactory" factory-method="getPerson" ></bean>
四盖腕、通過實例工廠創(chuàng)建對象
????????創(chuàng)建實例工廠類(和靜態(tài)工廠對比赫冬,就少了個static)
? ? ? ? 配置bean
? ?????? <bean id="personFactory" class="com.dreamguard.factory.PersonFactory"></bean>
????????<bean id="person" factory-bean="personFactory" factory-method="getPerson"></bean>
五、通過Spring工廠創(chuàng)建對象
? ? ? ? 創(chuàng)建Spring工廠類溃列,繼承FactoryBean即可劲厌。
? ? ? ? getObject:返回要創(chuàng)建的對象
? ? ? ? getObjectType:返回要創(chuàng)建的對象類型
? ? ? ? isSingleTon:是否是單例
? ? ? ? 配置bean
? ??????<bean id="person" class="com.dreamguard.factory.PersonSpringFactory"></bean>
完整代碼下載
????????https://github.com/hailindai/SpringSample