




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、.,1,Spring的核心容器,.,2,在Spring中,兩個最基本最重要的包是 org.springframework.beans org.springframework.context 這兩個包中的代碼為Spring的反向控制 特性(也叫作依賴注射)提供了基礎(chǔ)。 BeanFactory提供了一種先進的配置機制來管理任何種類bean(對象),這種配置機制考慮到任何一種可能的存儲方式。 ApplicationContext建立在BeanFactory之上,并增加了其他的功能,比如更容易同Spring AOP特性整合, 消息資源處理(用于國際化),事件傳遞,以聲明的方式創(chuàng)建Application
2、Context, 可選的父上下文和與應(yīng)用層相關(guān)的上下文(比如WebApplicationContext),以及其他方面的增強。,.,3,singleton 如果一個bean是singleton形態(tài)的,那么就只有一個共享的實例存在, 所有和這個bean定義的id符合的bean請求都會返回這個唯一的、特定的實例。 default is singleton,.,4,Ref ,.,5,對null的處理, null ,.,6,Depends-on, bean id=“date”.,.,7,Bean的生命周期,Bean的定義 Bean的初始化 Bean的調(diào)用 Bean的銷毀,.,8,The definit
3、ion of bean HelloWorld ,.,9,Bean的初始化,1、在配置文檔中通過指定init-method 屬性來完成 在Bean的類中實現(xiàn)一個初始化Bean屬性的方法,如init(),如: public class HelloWorld public String msg=null; public Date date=null; public void init() msg=HelloWorld; date=new Date(); 然后,在配置文件中設(shè)置init-mothod屬性: ,.,10,Bean的初始化,實現(xiàn) org.springframwork.beans.facto
4、ry.InitializingBean接口 Bean實現(xiàn)InitializingBean接口,并且增加 afterPropertiesSet() 方法: public class HelloWorld implement InitializingBean public String msg=null; public Date date=null; public void afterPropertiesSet() msg=向全世界問好!; date=new Date(); 那么,當這個Bean的所有屬性被Spring的BeanFactory設(shè)置完后,會自動調(diào)用afterPropertiesSet
5、()方法對Bean進行初始化,于是,配置文件就不用指定 init-method屬性了。,.,11,Bean的調(diào)用,1、使用BeanWrapper HelloWorld hw=new HelloWorld(); BeanWrapper bw=new BeanWrapperImpl(hw); bw.setPropertyvalue(msg,HelloWorld); system.out.println(bw.getPropertyCalue(msg); 2、使用BeanFactory InputStream is=new FileInputStream(config.xml); XmlBeanFa
6、ctory factory=new XmlBeanFactory(is); HelloWorld hw=(HelloWorld) factory.getBean(HelloWorld); system.out.println(hw.getMsg(); 3、使用ApplicationConttext ApplicationContext actx=new FleSystemXmlApplicationContext(config.xml); HelloWorld hw=(HelloWorld) actx.getBean(HelloWorld); System.out.println(hw.get
7、Msg();,.,12,Bean的銷毀,1、使用配置文件中的 destory-method 屬性 與初始化屬性 init-methods類似,在Bean的類中實現(xiàn)一個撤銷Bean的方法,然后在配置文件中通過 destory-method指定,那么當bean銷毀時,Spring將自動調(diào)用指定的銷毀方法。Public void cleanup(); 2、實現(xiàn) org.springframwork.bean.factory.DisposebleBean接口 如果實現(xiàn)了DisposebleBean接口,那么Spring將自動調(diào)用bean中的Destory方法進行銷毀,所以,Bean中必須提供Desto
8、ry方法。 Public void destroy();,.,13,bean的自動裝配,byName模式 byType模式 constructor模式 autodetect模式 No模式,.,14,byName模式,為此Hello bean設(shè)置date屬性的通用方式是在配置文件中指定 spring可以通過bean的屬性autowire指定bean的自動裝配類型,從而減少制定屬性的需要 Hello bean中包含一個變量date(Data類型),autowire=byName,則spring就會查找一個叫data的bean來設(shè)置date屬性,.,15,byType模式,byType模式 如果配置
9、文件中正好有一個bean,其類型與date的屬性相匹配,則就自動裝置。多于一個date類型bean是,就拋出異常 ,.,16,constructor模式,Hello bean 中增加一個構(gòu)造函數(shù),其中有個參數(shù)date,則spring就會根據(jù)參數(shù)查找合適類型的bean定義,然后用它來設(shè)置構(gòu)造函數(shù)的參數(shù)值 ,.,17,autodetect模式,通過對bean檢查類的內(nèi)部來選擇constructor或者byType模式,找到constructor就用constructor,否則用byType,.,18,no模式,即常用的顯示制定模式。 推薦此種方式,bean的依賴關(guān)系明顯,.,19,Ref(loca
10、l,bean,parant),1 、用 local 屬性指定目標 bean 可以利用 xml 解析器的能力在同一個文件中驗證 xml id 引用 . 如果在同一個文件中沒有匹 配的元素 ,xml 解析器就會產(chǎn)生一個 error, 所以如果目標 bean 在同一個 xml 文件中 , 那么用 local 形式是最好的選擇 . 2 、可以這么說, 提供了如下幾方面的屬性 : 1)bean: 在當前 Spring XML 配置文件中,或者在同一 BeanFactory(ApplicationContext) 中的其他 JavaBean 中 . 2)local: 在當前 Spring XML 配置文件中 . 其依賴的 JavaBean 必須存在于當前 Spring XML 培植文件中 . 如果借助 于 Spring IDE, 則在編譯期可以對其依賴的 JavaBean 進行驗證?;?local 方式,開發(fā)者能夠使用到 XML 本身提供 的優(yōu)勢,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生態(tài)農(nóng)業(yè)股東出資合作協(xié)議
- 水務(wù)企業(yè)股權(quán)激勵與轉(zhuǎn)讓協(xié)議
- 綠色能源項目股權(quán)投資與轉(zhuǎn)讓協(xié)議
- 股權(quán)激勵與股權(quán)激勵計劃解除變更協(xié)議樣式八
- 高新技術(shù)企業(yè)股權(quán)收購意向金合同模板
- 股東對公司借款及擔(dān)保解除條件合同
- 生物科技股權(quán)質(zhì)押貸款服務(wù)合同
- 股權(quán)轉(zhuǎn)讓及關(guān)聯(lián)交易披露合同范本
- 生態(tài)農(nóng)業(yè)項目股權(quán)變更及轉(zhuǎn)讓合同模板
- 網(wǎng)絡(luò)安全專家雇傭合同模板
- 卓越績效評價準則概述(專業(yè)性權(quán)威性實用性)
- GB/T 30142-2013平面型電磁屏蔽材料屏蔽效能測量方法
- GB/T 29894-2013木材鑒別方法通則
- 國資進場交易工作流程講座
- 當代法律英語翻譯全
- 制冷操作證培訓(xùn)教材制冷與空調(diào)設(shè)備運行操作作業(yè)培訓(xùn)教程課件
- 湖南省長沙市望城區(qū)2020-2021學(xué)年八年級下學(xué)期期末考試歷史試卷
- 煙葉烘烤調(diào)制理論考試試題
- DB23-T 3336-2022懸掛式單軌交通技術(shù)標準-(高清最新)
- 服刑人員心理健康教育課件
- 湖南省長郡中學(xué)“澄池”杯數(shù)學(xué)競賽初賽試題(掃描版含答案)
評論
0/150
提交評論