Spring通过工厂方法配置bean

Bean 的配置方式:

基于XML的方式配置bean.

  1. 通过全类名(反射)
  2. 通过工厂方法(静态工厂方法 & 实例工厂方法)
  3. FactoryBean 基于注解的方式配置bean.

工厂方法:

public class StaticFactory {

    private static Map persons = new HashMap();
    
    static{
        persons.put("tom", new Person("tom",12));
        persons.put("jack", new Person("jack",12));
    }
    
    //静态工厂方法。
    public static Person getPerson(String name){
        return persons.get(name);
    }
}


//实例工厂,需要创建工厂本身,再调用工厂的实例(对象)方法来返回需要的对象本身。
public class InstanceFactory {

    private Map persons = null;
    
    public InstanceFactory(){
        persons = new HashMap();
        persons.put("haha", new Person("haha",18));
        persons.put("xixi", new Person("xixi",18));
    }
    
    public Person getPerson(String name){
        return persons.get(name);
    }
}

通过静态工厂方法配置bean


        
    

通过实例工厂方法配置bean


    
    
    
    
        
    

FactoryBean:通过factorybean 配置 bean的实例。property配置factorybean的属性值
XML文件:


        
    

FactoryBean实现类:

public class PersonFactoryBean implements FactoryBean {

    private String name;

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public Person getObject() throws Exception {
        // TODO Auto-generated method stub
        return new Person(name,30);
    }

    @Override
    public Class getObjectType() {
        // TODO Auto-generated method stub
        return Person.class;
    }


    @Override
    public boolean isSingleton() {
        // TODO Auto-generated method stub
        return true;
    }
}

你可能感兴趣的:(Spring通过工厂方法配置bean)