spring 9 bean配置--通过工厂方法(静态工厂方法&实例工厂方法

  通过bean的全类名配置bean,底层用的是反射机制;还可以通过工厂方法(静态工厂方法&实例工厂方法)来配置bean,在整合第三方框架时有用到。

 

InstanceCarFactory.java

package mdd.study.beans.factory;

import java.util.HashMap;
import java.util.Map;

/*
 * 实例工厂方法:实例工厂的方法,即先需要创建工厂本身,再调用工厂的实例方法来返回bean的实例
 * 
 * */
public class InstanceCarFactory {


private Map cars=null;

public InstanceCarFactory(){
cars=new HashMap();
cars.put("audi", new Car("audi",300000));
cars.put("ford", new Car("ford",400000));
}

public Car getCar(String brand){
return cars.get(brand);
}
}


StaticCarFactory.java

package mdd.study.beans.factory;


import java.util.HashMap;
import java.util.Map;


/*
 * 静态工厂方法:直接调用某一个类的静态方法就可以返回bean的实例
 * */
public class StaticCarFactory {


public static Map cars=new HashMap();

static{
cars.put("audi", new Car("audi",300000));
cars.put("ford", new Car("ford",400000));


}
//静态工厂方法
public static Car getCar(String name){

return cars.get(name);
}
}


beans-factory.xml:


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">




class="mdd.study.beans.factory.StaticCarFactory"
factory-method="getCar">












你可能感兴趣的:(spring)