spring入门--bean的三种创建方式

[ * ] 静态工程方法创建bean

[ * ] 实例工程方法创建bean

[ * ] spring的FactoryBean创建bean

静态工程方法创建bean

直接用类的静态方法就可以返回bean的实例

 public class StaticCarFactory {
   private static Map cars = new HashMap();

   static {
       cars.put("audi", new Car("audi", 20000));
       cars.put("ford", new Car("ford", 40000));
   }

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

        
    

静态工程方法创建bean

先创建工程本身,在调用工程的实例方法

public class InstanceCarFactory {
    private static Map cars;

    public InstanceCarFactory() {
        cars = new HashMap();

        cars.put("audi", new Car("audi", 20000));
        cars.put("ford", new Car("ford", 40000));
    }

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

    
        
    

spring的FactoryBean创建bean

实现FactoryBean接口

public class CarFactoryBean implements FactoryBean {
    private String brand;

    public void setBrand(String brand) {
        this.brand = brand;
    }

    /**
     * @return bean对象
     * @throws Exception 异常
     */
    @Override
    public Car getObject() throws Exception {
        return new Car(brand, 40000);
    }

    /**
     * @return bean的类型
     */
    @Override
    public Class getObjectType() {
        return Car.class;
    }

    /**
     * @return 是否单例
     */
    @Override
    public boolean isSingleton() {
        return true;
    }
}

    
       
    

你可能感兴趣的:(spring入门--bean的三种创建方式)