先看非静态的
先写一个简单工厂
package com.lbx.factory;
import com.lbx.model.Car;
/**
* 这是非静态的工厂方法注入
* @author Administrator
*
*/
public class CarFactory {
public Car createHongQiCar(){
Car car = new Car();
car.setName("红旗");
car.setSpeed("200");
return car;
}
}
对应的bean.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" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id="carFactory" class="com.lbx.factory.CarFactory"></bean> <bean id="car" factory-bean="carFactory" factory-method="createHongQiCar"></bean> </beans>
再看静态的(无需依赖工厂的bean)
工厂类
package com.lbx.factory;
import com.lbx.model.Car;
/**
* 这是静态的工厂方法注入
* @author Administrator
*
*/
public class CarFactory2 {
public static Car createHongQiCar(){
Car car = new Car();
car.setName("红旗");
car.setSpeed("200");
return car;
}
}
对应的bean2.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"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="car" class="com.lbx.factory.CarFactory2" factory-method="createHongQiCar"></bean>
</beans>