Spring静态工厂和实例工厂创建bean

1.静态工厂创建bean。 工厂类有一个公共的静态方法用于创建bean,隐藏了创建bean的细节,以及将创建的bean托管给容器。

配置:

 <!-- 静态工厂 -->

 <bean id="aProduct" class="com.StaticFactory"  factory-method="createProduct"> 

     <constructor-arg value="bccbb"></constructor-arg>

 </bean>

id: 工厂创建的bean的id

class:静态工厂的类

factory-method:静态工厂的静态创建bean方法

constructor-arg:用于给工厂方法传递参数。有时创建bean需要某些参数,可通过该属性传入工厂方法。

如:

public class StaticFactory{



public static Product createProduct(String id){//静态工厂方法。 它的参数由constructor-arg传入



return product;



}



..



}

 

2.实例工厂创建Bean。即容器中有一个工厂Bean,然后通过工厂bean和工厂方法(非静态)创建bean。

 <!-- 工厂bean -->

 <bean id="productFactory" class="com.Factory">

 </bean>

<bean id="productA" factory-bean="productFactory" factory-method="createProduct">
  <constructor-arg value="456"/><!--给工厂方法传递参数-->
</bean>

即:先创建工厂bean。
然后通过factory-bean factory-method指定工厂bean和工厂方法,来创建bean。
public class Factory{


//不是静态方法
public Product createProduct(String id){//工厂方法。 它的参数由constructor-arg传入 return product; } .. }

 

你可能感兴趣的:(spring)