spring 工厂方法创建bean

添加评论 55 views 2010年1月12日

Spring用工厂的方式创建对象: 静态工厂, 实例工厂

静态工厂类, 当使用静态工厂方法构造bean实例时,class属性是包含了静态工厂方法的类,同时还需要属性factory-method指
明创建实例的静态工厂方法名.这个构造的实例并不一定是class属性指明的类的实例.它可以是其它类的实例.
spring在构造实例时会自动调用静态的工厂方法.


public static  Car createCar(){// 静态工厂,静态方法
return new Car();
}
<bean id=”car”   factory-method=”createCar” />
Car car=(Car) ctx.getBean(“car”);
System.out.println(car);

实例工厂: 指工厂实例化后才能使用, 这种方法和使用静态工厂方法构造实例类似,通过调用一个bean(该bean的类包含了用来创建实例的工厂方法)的工厂方法构造bean的实例。这里需要注意的是:需要被构造实例的bean类在配置文件中不需要class属
性,但是需要通过factory-bean属性指明用来创建该bean的工厂bean。并且用factory-method属性指明实例工厂方法。下面是一个例子:
public  Car createCar(){// 必须是实例方法
return new Car();
}
<bean id=”factory”  class=”ioc06.CarFactory”/>
<bean id=”car”  factory-bean=”carFactory”   factory-method=”createCar” />

总结

Spring有三种方法实例化Bean,第一种方法,通过bean的缺省构造函数创建,当各个bean的业务逻辑相互比较独立的时候或者和外界关联较少的时候可以使用。

第二种方法,利用静态factory方法创建,可以统一管理各个bean的创建,如各个bean在创建之前需要相同的初始化处理,则可用这个factory方法险进行统一的处理等等。

第三种方法,利用实例化factory方法创建,即将factory方法也作为了业务bean来控制,觉得1可用于集成其他框架的bean创建管理方法,2能够使bean和factory的角色互换。

  1. 还没有评论.想坐沙发?
  1. 还没有 trackbacks
订阅评论