通过静态工厂方法配置bean
注意:静态工厂方法配置bean不是配置静态工厂方法实例,而是配置bean实例
- 首先建立car类,设置brand,price两个属性
public class Car {
private String brand;
private int price;
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
@Override
public String toString() {
return "Car{" +
"brand='" + brand + '\'' +
", price=" + price +
'}';
}
public Car() {
System.out.println("car's constructor...");
}
public Car(String brand, int price) {
super();
this.brand = brand;
this.price = price;
}
- 再建立StaticCarFactory类
public class StaticCarFactory {
private static Map<String, Car> cars = new HashMap<String, Car>();
static {
cars.put("audi", new Car("audi", 3000000));
cars.put("ford", new Car("ford", 4000000));
}
//静态工厂方法
public static Car getCar(String name) {
return cars.get(name);
}
- 在建立beans-factory.xml配置bean
<!--通过静态工厂方法来配置bean,注意不是配置静态工厂方法实例,而是配置bean实例-->
<!--
class 属性:指向静态工厂方法的全类名
factory-method: 指向静态方法的名字
constructor-arg:如果工厂方法需要传入参数,则使用constructor-arg来配置参数
-->
<bean id="car1"
class="com.sofia.spring.beans.factory.StaticCarFactory"
factory-method="getCar">
<constructor-arg value="audi"/>
</bean>
- 最后在主函数中创建容器,输出就可以啦!
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans-factory.xml");
Car car1 = (Car) ctx.getBean("car1");
System.out.println(car1);

本文详细介绍如何在Spring中使用静态工厂方法配置Bean实例,包括创建Car类与StaticCarFactory类,以及在beans-factory.xml文件中进行配置的方法。
401

被折叠的 条评论
为什么被折叠?



