Car文件的代码:
public class Car {
public String brand;
public double price;
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
System.out.println("setBrand()");
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
System.out.println("setPrice()");
}
public Car(String brand,double price){
this.brand = brand;
this.price = price;
}
}
InstanceCarFactory类的代码:
import java.util.HashMap;
import java.util.Map;
public class InstanceCarFactory {
private Map<String,Car> cars = null;
public InstanceCarFactory(){
cars = new HashMap<String,Car>(){};
cars.put("baoma",new Car("baoma",10000.00));
cars.put("benshi",new Car("benshi",20000.00));
}
public Car getCar(String name){
return cars.get(name);
}
}
Spring-config.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 id="instanceCarFactory" class="InstanceCarFactory"></bean>
<bean id="car" factory-bean="instanceCarFactory" factory-method="getCar">
<constructor-arg value="baoma"></constructor-arg>
</bean>
</beans>
Main文件代码如下:
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Main {
public static void main(String args[]){
ClassPathXmlApplicationContext clt = new ClassPathXmlApplicationContext("spring-config.xml");
Car car = (Car) clt.getBean("car");
System.out.println(car.getBrand());
clt.close();
}
}