IOC操作Bean管理XML方式(FactoryBean)
生活随笔
收集整理的這篇文章主要介紹了
IOC操作Bean管理XML方式(FactoryBean)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
IOC操作Bean管理XML方式(FactoryBean)
Spring 有兩種類型的bean
第一種:是普通的 bean
第二種:工廠bean?FactoryBean
第一步:創建類,讓這個類作為工廠bean
第二步:在類中實現接口里面的方法,在實現的方法中定義返回的 bean 類型
第三步:測試
總結:
?
IOC操作Bean管理XML方式(FactoryBean)
?
Spring 有兩種類型的bean
?
第一種:是普通的 bean
普通的 bean:在xml配置文件中的class配置的是什么類,那么返回的就必須是哪個類
? ? ? ? ? ? ? ? ? ? ? ?也就是說:在配置文件中定義 bean 類型就是返回類型
演示效果:?
?
第二種:工廠bean?FactoryBean
?工廠bean:在xml配置文件中的class配置的是什么類,返回的類可以和class配置的類不一樣
? ? ? ? ? ? ? ? ? ? 也就是說:在配置文件定義 bean 類型可以和返回類型不一樣
?演示:
第一步:創建類,讓這個類作為工廠bean
問:如何讓類作為工廠 Bean 呢?
方法:實現接口 FactoryBean
為了方便測試,我們先創建一個 factorybean 包
?再在 factorybean 包中新建一個 Mybean 類
Mybean類中的代碼如下:
package com.lbj.spring5.factorybean;import com.lbj.spring5.collectiontype.Course; import org.springframework.beans.factory.FactoryBean;public class Mybean {}?
新建一個bean3.xml配置文件用來測試
代碼如下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xmlns:util="http://www.springframework.org/schema/util"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"> <!--Mybean對象通過配置文件創建出來--><bean id="myBean" class="com.lbj.spring5.factorybean.Mybean"></bean> </beans>第二步:在類中實現接口里面的方法,在實現的方法中定義返回的 bean 類型
package com.lbj.spring5.factorybean;import com.lbj.spring5.collectiontype.Course; import org.springframework.beans.factory.FactoryBean;/*** ?工廠模式這里指的是這個實例工廠已經替我們創建好,直接拿著用就行*/ public class Mybean implements FactoryBean<Course>{@Override // 定義返回bean的實例 // 這么做的目的是設置Mybean這個部分返回的對象是Course對象而不是Mybeanpublic Course getObject() throws Exception {Course course = new Course();course.setCname("語文課");return course;}@Override // 返回bean的類型public Class<?> getObjectType() {return null;}@Override // 是否單例public boolean isSingleton() {return false;} }?
第三步:測試
package com.lbj.spring5.testdemo;import com.lbj.spring5.collectiontype.Course; import com.lbj.spring5.factorybean.Mybean; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;public class TestSpring5Demo1 {@Testpublic void tsetCollection3(){ApplicationContext context=new ClassPathXmlApplicationContext("bean3.xml");Course course=context.getBean("myBean", Course.class);System.out.println(course);} }?
總結:
工廠bean,就是為了后面返回不同類型對象作個鋪墊
工廠模式的意義就是為了不暴露對象創建的過程
泛型工廠模式
?
?
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的IOC操作Bean管理XML方式(FactoryBean)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 嵌入式操作系统_航天科工海鹰翼辉嵌入式操
- 下一篇: JAVA进阶教学之(Object类的to