1. 程式人生 > >spring中例項化Bean的三種方式

spring中例項化Bean的三種方式

第一種方式:使用預設無參建構函式
在預設情況下:
它會根據預設無參建構函式來建立類物件。如果bean中沒有預設無參建構函式,將會建立失敗。

 <bean id="customerService"class="com.ray.service.impl.CustomerServiceImpl"/>

第二種方式:spring管理靜態工廠,–使用靜態工廠的方法建立物件

/**
 * 模擬一個靜態工廠,建立業務層實現類
 */
public class StaticFactory {    
    public static ICustomerService createCustomerService(){
        return
new CustomerServiceImpl(); } } <!-- 此種方式是: 使用StaticFactory類中的靜態方法createCustomerService建立物件,並存入spring容器 id屬性:指定bean的id,用於從容器中獲取 class屬性:指定靜態工廠的全限定類名 factory-method屬性:指定生產物件的靜態方法 --> <bean id="customerService" class="com.ray.factory.StaticFactory" factory-method="createCustomerService"
></bean>

第三種方式:spring管理例項工廠—使用例項工廠的方法建立物件

/**
 * 模擬一個例項工廠,建立業務層實現類
 * 此工廠建立物件,必須現有工廠例項物件,再呼叫方法
 */
public class InstanceFactory {  
    public ICustomerService createCustomerService(){
        return new CustomerServiceImpl();
    }
}
    <!-- 此種方式是:
         先把工廠的建立交給spring來管理。
        然後在使用工廠的bean來呼叫裡面的方法
        factory-bean屬性:用於指定例項工廠bean的id。
        factory-method屬性:用於指定例項工廠中建立物件的方法。
    -->
    <bean id="instancFactory"
class="com.ray.factory.InstanceFactory"></bean> <bean id="customerService" factory-bean="instancFactory" factory-method="createCustomerService"></bean>