iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 3
1

getBean三種方法
如圖所示getBean有五種方式,介紹其中三種方式
getBean
我學習的資料只介紹三種使用方式在此紀錄如下

        //從ClassPath找到資源文件
		Resource resource = new ClassPathResource("applicationContext.xml");
		//創建Spring容器(BeanFactor)
		BeanFactory beanFactory = new XmlBeanFactory(resource);
		//從Spring容器中獲取指定名稱對象
		//HelloWorld world = (HelloWorld) beanFactory.getBean("helloWorld");
		//
		HelloWorld world = beanFactory.getBean("helloWorld",HelloWorld.class);
		world.sayHello();HelloWorld world = beanFactory.getBean(HelloWorld.class);

什麼是BeanFactory
為Spring最基本接口,表示為一個容器負責生產調用管理bean視為Bean的工廠,下列介紹三種呼叫getBean方法

第一種方式 HelloWorld world = beanFactory.getBean(HelloWorld.class);

使用這種方式只能用一配置一種實例如果在applicationContex.xml多配置一組helloWorld2則會發生Bean類型已經被定義錯誤如下
多配置一組定義
org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type [com.springHello.HelloWorld] is defined: expected single matching bean but found 2: helloWorld2,helloWorld

根據applicationContex.xml ID名稱
HelloWorld world = (HelloWorld) beanFactory.getBean("helloWorld");

這種使用方法不安全因為可以亂定義宣告如下
int world = (Integer) beanFactory.getBean("helloWorld2");

    最後第三種方式如下根據id及class方式(推薦使用)
        HelloWorld world = beanFactory.getBean("helloWorld",HelloWorld.class);
		HelloWorld world2 = beanFactory.getBean("helloWorld2",HelloWorld.class);
		world.sayHello();
		world2.sayHello();

上一篇
Day 02 IoC/DI介紹
下一篇
Day04 Spring作用域及Bean初始化方式
系列文
30天學習J2EE Spring+Hibernate學習心得記錄12
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言