1. 程式人生 > 其它 >4、Spring5-IOC容器-Bean管理-FactoryBean

4、Spring5-IOC容器-Bean管理-FactoryBean

bean的分類

1、Spring有兩種Bean,一種是普通的Bean,另外一種是工廠FactoryBean

2、普通Bean:(自己建立的bean)在Spring的配置檔案中,定義的bean型別就是返回的型別

//使用普通bean建立物件
public class MyBean {
}
<bean id="myBean" class="factoryBean.MyBean"></bean>

3、工廠Bean:在配置檔案中定義Bean型別可以和返回的型別不一樣

(1)第一步:建立一個類,讓這個類作為一個工廠bean,實現介面FactoryBean 

(2)第二步:實現接口裡面的方法,在實現方法中定義返回的bean型別

<bean id="myBean" class="factoryBean.MyBean"></bean>
public class MyBean implements FactoryBean<Course> {
    //定義返回Bean物件(加泛型):設定MyBean返回的物件是Course物件
    @Override
    public Course getObject() throws Exception {//配置檔案中定義的返回值型別和得到的型別不一樣,這個型別在getObject方法中定義
        Course course = new
Course(); course.setCname("abc"); return course; } @Override public Class<?> getObjectType() { return null; } @Override public boolean isSingleton() { return false; } }

 測試類如下:

@Test
public void test3(){
  ApplicationContext context 
= new ClassPathXmlApplicationContext("bean3.xml");   Course course = context.getBean("myBean", Course.class);   System.out.println(course); }

 在配置檔案中配置的返回值型別為MyBean,但是得到的卻是Course型別,FactoryBean的getObject()方法可以定義返回值的型別。