第四章+詳談bean的裝配_第1頁
第四章+詳談bean的裝配_第2頁
第四章+詳談bean的裝配_第3頁
第四章+詳談bean的裝配_第4頁
第四章+詳談bean的裝配_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、 在spring容器中拼湊bean叫做裝配bean。裝配 bean的時候,需要告訴容器哪些bean以及容器如 何使用依賴注入將他們配合在一起 XML是最常見的spring應用系統(tǒng)配置源。包括: XmlBeanFactory:調(diào)用ClassPathResource載 入上下文定義文件(比如beans.xml)。 ClassPathXmlApplicationContext:從類路徑 載入上下文定義文件。 XmlWebApplicationContext:從Web應用 上下文中載入定義文件。 上下文定義文件的根元素是, 有 多個子元素。每個元素定義了一個 bean如何被裝配到spring容器中。

2、對bean最基本的配置包 括bean的id和bean的全 稱類名。 Scope:singleton、prototype、request、session、 global-session。 Spring中的bean缺省情況下是單例模式,始終返回一個 實例。若想返回不同的實例,需要定義成原型模式。 使用原型bean會對性能產(chǎn)生影響,盡量不要設置為 prototype,除非必要。 實例化與銷毀:spring實例化bean或者銷毀bean的時 候,有時候需要作一些處理工作,因此spring可以在創(chuàng) 建和拆卸bean的時候調(diào)用bean的兩個生命周期方法。 實例化與銷毀:spring也提供了兩個接口來實現(xiàn)相

3、同的 功能。 InitializingBean和DisposableBean。 InitializingBean接口提供了一個afterPropertiesSet() 方法。 DisposableBean接口提供了destroy()方法。 不推薦使用該接口,它將你的bean和springAPI綁定在 一起。 通過set方法注入依賴: 元素的子元素指明了使用它們的 set方法來注入??梢宰⑷肴魏螙|西,從基本類型到集合 類,甚至是應用系統(tǒng)的bean。 java中主要的集合有: map set list 數(shù)組 小明 大明 小小明 for(Entry entry1:department.getEmpm

4、ap().entrySet() System.out.println(entry1.getKey()+ +entry1.getValue().getName(); Set注入的缺點是無法清晰表達哪些屬性是必須的, 哪些是可選的。構造注入的優(yōu)勢是通過構造的強制依 賴關系,不可能實例化不完全或無法使用的bean。 byName:尋找和屬性名相同的bean,如果找不到就裝不 上。 byType:尋找和屬性類型相同的bean,找不到就裝不上, 找到多個拋異常。 Constructor:尋找和bean的構造參數(shù)一致的一個或多個 bean,若找不到或找到多個拋異常,按照參數(shù)類型裝配。 Autodetect

5、:(2)和(3)之間選一個。 Default: No:不自動裝配,是autowire的默認值。 ApplicationContext ac=new ClassPathXmlApplicationContext(com/autowire/bean.xml); ApplicationContext ac=new ClassPathXmlApplicationContext(com/autowire/bean.xml); ox345 master name=“李四” dog=null ox123 dog name=小黃 age=“2 內(nèi)存 ApplicationContext ac=new Clas

6、sPathXmlApplicationContext(com/autowire/bean.xml); ox345 master name=“李四” dog=null ox123 dog name=小黃 age=“2 內(nèi)存 ApplicationContext ac=new ClassPathXmlApplicationContext(com/autowire/bean.xml); ox345 master name=“李四” dog=null ox123 dog11 name=小黃 age=“2 內(nèi)存 將 dog通過構造函數(shù)傳入 public Master(Dog dog) this.dog=

7、dog; ox345 master name=“李四” dog=null ox123 dog1 name=小黃 age=“2 內(nèi)存 個人建議:盡量用set注入,自動裝配能不用就不用。 實現(xiàn)了BeanPostProcessor的后置處理 器 PropertyPlaceholderConfigurer(分 散配置,將配置文件分成幾個分散的文 件) 說明: 當通過 context:property-placeholder 引入 屬 性文件的時候,有多個需要使用逗號間隔。 name=scott driver=oracle:jdbc:driver:oracleDirver url=jdbc:oracle:thin:127.0.0.1:1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論