Spring4通过工厂方法配制Bean

  • 调用静态工厂方法创建Bean是将对象创建的过程封装到静态方法中,,当客户端需要对象时,只需要简单地调用静态方法,而不用关心创建对象的细节。
  • 要声明通过静态方法创建的Bean,需要在Bean的class属性里指定拥有该工厂的方法的类,同时在factory-method属性里指定工厂方法的名称,最后,使用<constructor-arg>元素为该方法传递方法参数.
     实例:
     beans-facotry.xml
    
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
	
	<!-- 通过静态工厂方法来配置bean -->
	<!-- 
	   class属性:指向静态工厂方法全类名
	   factory-method:指向静态工厂方法的名字
	   constructor-arg:如果工厂方法需要传入参数,则使用constructor-arg来配置参数
	 -->
     <bean id="car1" class="com.atguigu.spring.beans.factory.StaticCarFactory"
           factory-method="getCar">
           <constructor-arg value="audi"></constructor-arg>
     </bean>

</beans>


  • 实例工厂方法:将对象的创建过程封装到另一个对象实例的方法里.当客户端需要请求对象时,只需要简单的调用该实例方法二不需要关心对象的创建细节
  • 要声明通过实例工厂方法创建的Bean
       ——在bean的factory-bean属性里指定拥有该工厂方法的bean
       ——在factory-method属性里指定该工厂方法的名称
       ——使用constructor-arg元素为工厂方法传递方法参数

beans-factory.xml
           
     <!-- 配置工厂的实例 -->
     <bean id="carFactory" class="com.atguigu.spring.beans.factory.InstanceCarFactory"></bean>
     <!-- 实例工厂方法来配置bean -->
     <!-- 
         factory-bean  属性:指向实例工厂方法的bean
         factory-method:指向实例工厂方法的名字
         constructor-arg:...
      -->
     <bean id="car2" factory-bean="carFactory" factory-method="getCar">
        <constructor-arg value="ford"></constructor-arg>
     </bean>



你可能感兴趣的:(Spring4通过工厂方法配制Bean)