4、Spring5-IOC容器-Bean管理-FactoryBean
阿新 • • 發佈:2022-05-29
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 = newCourse(); 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()方法可以定義返回值的型別。