美文网首页
Spring-4静态工厂方法和动态工程方法配置bean

Spring-4静态工厂方法和动态工程方法配置bean

作者: RyanHugo | 来源:发表于2020-03-12 20:00 被阅读0次

静态工厂方法

<!-- 静态工厂方法直接调用一个类的静态方法可以返回bean
    class指向静态工厂方法的类
    factory-method:指向静态工厂方法的
    constructor-arg:传入静态工厂方法的参数-->
    
    <bean id = "car1" class = "cycle.StaticFactory" factory-method="getCar">
        <constructor-arg value="audi"></constructor-arg>
    </bean>
import java.util.HashMap;
import java.util.Map;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class StaticFactory {

    private static Map<String, Car> cars = new HashMap<String, Car>();
    static{
        cars.put("audi", new Car("奥迪"));
        cars.put("ford", new Car("福特"));
    }   
    public static Car getCar(String name){
        return cars.get(name);
    }
        
    public static void main(String[] args) {
        ApplicationContext c = new ClassPathXmlApplicationContext("bean-cycle.xml");
        Car car = (Car) c.getBean("car1");
        System.out.println(car);
    }
}

动态工厂方法

<bean id = "carFactory" class="cycle.InstanceFactory"></bean>
    <bean id = "car2" factory-bean="carFactory" factory-method="getCar">
        <constructor-arg value="ford"></constructor-arg>
    </bean> 
import java.util.HashMap;
import java.util.Map;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class InstanceFactory {

    private Map<String, Car> cars = null;
    
    public InstanceFactory() {
        // TODO Auto-generated constructor stub
        cars = new HashMap<String, Car>();
        cars.put("audi", new Car("奥迪"));
        cars.put("ford", new Car("福特"));
    }
    
    public Car getCar(String name){
        return cars.get(name);
    }
    
    
    public static void main(String[] args) {
        ApplicationContext c = new ClassPathXmlApplicationContext("bean-cycle.xml");
        Car car = (Car) c.getBean("car2");
        System.out.println(car);
    }
    
}

相关文章

网友评论

      本文标题:Spring-4静态工厂方法和动态工程方法配置bean

      本文链接:https://www.haomeiwen.com/subject/pddwjhtx.html