<!--默認構造 <bean id="userServiceId" class="com.zhiyou100.service.impl.UserServiceImpl"/>--> <!--靜態工廠 factory-method 肯定靜態方法名 <bean id="userServiceId" class="com.zhiyou100.service.impl.UserServiceImpl" factory-method="createUserService"/>--> <!--建立工廠實例對象 全部方法非靜態 <bean id="userServiceFactoryId" class="com.zhiyou100.service.impl.UserServiceFactory"/> factory-bean 肯定工廠實例 factory-method 肯定普通方法 <bean id="userServiceId" factory-bean="userServiceFactoryId" factory-method="createUserService" scope="prototype"/>-->
一、默認構造spring
<bean id="" class=""> 必須提供默認構造框架
二、靜態工廠工具
經常使用與spring整合其餘框架(工具)spa
靜態工廠:用於生成實例對象,全部的方法必須是staticprototype
<bean id="" class="工廠全限定類名" factory-method="靜態方法">對象
工廠:class
public class MyBeanFactory {配置
public static UserService createService(){service
return new UserServiceImpl();方法
}
}
spring配置:
<!-- 將靜態工廠建立的實例交予spring
class 肯定靜態工廠全限定類名
factory-method 肯定靜態方法名
-->
<bean id="userService" class="com.zhiyou100.MyBeanFactory" factory-method="createService"></bean>
三、實例工廠
實例工廠:必須先有工廠實例對象,經過實例對象建立對象。提供全部的方法都是「非靜態」的。
工廠:
/**
* 實例工廠,全部方法非靜態
*/
public class MyBeanFactory {
public UserService createService(){
return new UserServiceImpl();
}
}
spring 配置:
<!-- 建立工廠實例對象-->
<bean id="myBeanFactory" class="com.zhiyou100.MyBeanFactory"></bean>
<!-- 得到userservice
* factory-bean 肯定工廠實例
* factory-method 肯定普通方法
-->
<bean id="userService" factory-bean="myBeanFactory" factory-method="createService"></bean>