您的位置:首页 > 编程语言 > Java开发

Spring学习之使用静态工厂方法以及实例工厂方法配置bean

2017-06-10 02:18 861 查看
首先创建一个Car类作为bean方便工厂方法的使用

public class Car {

public String toString() {
return "Car [name=" + name + ", price=" + price + "]";
}
private String name;
private double price;
public Car()
{

}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public Car(String name,double price)
{
this.name=name;
this.price=price;
}

}

接下来,首先是如何使用静态工厂方法来返回bean实例

1.写一个静态工厂并在静态代码块中添加bean

public class StaticFactory {
private static Map<String, Car> cars=new HashMap<String, Car>();
static{
cars.put("奥迪", new Car("奥迪", 300000.0));
cars.put("福特",new Car("福特", 250000.0));
}
public static Car getCar(String name)
{
return cars.get(name);
}

}

2.在xml文件中进行配置

   <!-- 
通过静态工厂方法来配置bean,不是配置静态工厂方法实例,而是配置bean实例
class属性:指向静态工厂的全类名
factory-method:指向静态工厂方法的方法名
constructor-arg如果工厂方法需要传入参数,则使用constructor-arg来配置参数
-->
<bean id="car1" 
class="factory.StaticFactory"
factory-method="getCar">
<constructor-arg value="奥迪"></constructor-arg>
</bean>     

使用实例工厂方法来返回bean实例

1.编写一个实例工厂

public class InstanceFactory {
private Map<String, Car> cars=new HashMap<String, Car>();
public InstanceFactory()
{
cars.put("奥迪", new Car("奥迪", 300000.0));
cars.put("福特", new Car("福特", 250000.0));
}
public  Car getCar(String name)
{
return cars.get(name);
}

}

2.在xml文件中进行配置

 <!-- 通过实例工厂方法来配置bean
factory-bean:实例工厂的全类名
factory-method:指向静态工厂方法的方法名
constructor-arg如果工厂方法需要传入参数,则使用constructor-arg来配置参数
 -->
<!-- 配置工厂的实例 -->
<bean id="factory" class="factory.InstanceFactory"></bean>
<!-- 通过实例工厂来配置bean -->
<bean id="car2"  factory-bean="factory" factory-method="getCar">
<constructor-arg value="奥迪"></constructor-arg>
</bean>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring
相关文章推荐