1. 程式人生 > >Spring中Bean的配置方式之FactoryBean

Spring中Bean的配置方式之FactoryBean

alt mage -1 bsp image 技術分享 logs 指向 urn

  Spring 中有兩種類型的 Bean, 一種是普通Bean, 另一種是工廠Bean, 即FactoryBean.
  工廠 Bean 跟普通Bean不同, 其返回的對象不是指定類的一個實例, 其返回的是該工廠 Bean 的 getObject 方法所返回的對象

技術分享

相關代碼:

Car.java

private String brand;

private double price;

CarFactoryBean.java

public class CarFactoryBean implements FactoryBean<Car>{
    
    private String brand;
    
    
public void setBrand(String brand) { this.brand = brand; } //返回bean的對象 @Override public Car getObject() throws Exception { return new Car(brand,500000); } //返回bean的類型 @Override public Class<?> getObjectType() { return Car.class
; } @Override public boolean isSingleton() { return true; } }

bean-factorybean.xml

<!-- 
        通過FactoryBean來配置bean的實例
        class:指向FactoryBean的全類名
        property:配置的時FactoryBean的屬性
                但實際返回的實例卻是FactoryBean的getObject()方法的實例
     -->
<bean id="car" class
="com.yslf.factorybean.CarFactoryBean"> <property name="brand" value="BMW"></property> </bean>

Spring中Bean的配置方式之FactoryBean