這篇文章將為大家詳細(xì)講解有關(guān)Spring如何實(shí)現(xiàn)自動(dòng)裝配,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

讓客戶(hù)滿(mǎn)意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名申請(qǐng)、虛擬空間、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、福鼎網(wǎng)站維護(hù)、網(wǎng)站推廣。
Spring之自動(dòng)裝配,所謂自動(dòng)裝配,從字面解讀,我想應(yīng)該不難理解吧(當(dāng)然不是誘導(dǎo)讀者去咬文嚼字)。那究竟spring 自動(dòng)裝配有幾種裝配類(lèi)型(我想大家最關(guān)注的應(yīng)該是我們什么時(shí)候可以“偷懶”反之什么時(shí)候又不能,我想開(kāi)發(fā)者目的應(yīng)該也是為了簡(jiǎn)化程序員的工作)。那下面我們就介紹spring自動(dòng)裝配之不能偷懶——autowire="no",在接受之前我們先介紹自動(dòng)裝配總共包括幾種裝配方式(在其他裝配方式中就不在介紹了)。
在介紹之前,先簡(jiǎn)單的提一個(gè)問(wèn)題(自動(dòng)裝配總共有幾種呢),答案(六種)也許與大家想的有點(diǎn)背離,但是我個(gè)人認(rèn)為并不是不無(wú)道理的。
1. default-autowire="那五種形式": 這種是在全局(即在跟標(biāo)簽里)定義的,如果局部定義了autowire 可想而知,當(dāng)然是按照局部的去進(jìn)行自動(dòng)裝配了,如果沒(méi)有定義就是按照跟標(biāo)簽的默認(rèn)定義去進(jìn)行裝配,所以在這里把它單獨(dú)拿出來(lái)作為一種
2. No:通過(guò)ref元素指定依賴(lài)
3. byName:在容器中尋找和需要自動(dòng)裝配的屬性名相同的Bean(或ID),如果沒(méi)有找到相符的Bean,該屬性就沒(méi)有被裝配上。
4. byType:在容器中尋找一個(gè)與需要自動(dòng)裝配的屬性類(lèi)型相同的Bean;如果沒(méi)有找到相符的Bean,該屬性就沒(méi)有被裝配上,如果找到超過(guò)一個(gè)相符的Bean拋出異常org.springframework.beans.factory.UnsatisfiedDependencyException(特此聲明測(cè)試針對(duì)spring2.5.6,在spring3.0中檢查到多個(gè)Bean貌似沒(méi)有異常并且在3.0中沒(méi)有依賴(lài)檢查這個(gè)屬性)
5. Constructor:在容器中查找與需要自動(dòng)裝配的Bean的構(gòu)造方法參數(shù)一致的一個(gè)或者過(guò)個(gè)Bean,如果從在不確定的Bean或構(gòu)造方法,容器會(huì)拋出異常org.springframework.beans.factory.UnsatisfiedDependencyException.
6. Autodetect:首先我們嘗試使用constructor來(lái)自動(dòng)裝配,然后使用byType方式。不確定行的處理與constuctor和byType方式一樣
既然我們的題目叫不能偷懶,那當(dāng)然我們就要介紹no了
Java代碼
//Longmanfei.xml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> class="cn.csdn.service.GreetingServiceImpl" autowire="no"> //GreetingDaoImpl public class GreetingDaoImpl implements GreetingDao { private String say; public void say() { System.out.println("我打了這個(gè)招呼"+say); } public void setSay(String say) { this.say = say; } } //GreetingServiceImpl public class GreetingServiceImpl implements GreetingService{ private GreetingDaoImpl greetingDaoImpl; public void say() { greetingDaoImpl.say(); } public void setGreetingDaoImpl(GreetingDaoImpl gdi) { System.out.println("我調(diào)用了set方法"); this.greetingDaoImpl = gdi; } public GreetingServiceImpl() { super(); System.out.println("我調(diào)用了空的構(gòu)造器"); } public GreetingServiceImpl(GreetingDaoImpl greetingDaoImpl) { super(); System.out.println("我調(diào)用了有參的構(gòu)造器"); this.greetingDaoImpl = greetingDaoImpl; } } //junit測(cè)試 @Test public void test1(){ /*加載spring容器可以解析多個(gè)配置文件采用數(shù)組方式傳遞*/ ApplicationContext ac=new ClassPathXmlApplicationContext("classpath:Longmanfei.xml"); //直接轉(zhuǎn)換成接口便于日后修改數(shù)據(jù)/*Ioc控制反轉(zhuǎn)體現(xiàn)*/ GreetingService gs=(GreetingService) ac.getBean("greetingServiceImpl"); gs.say(); }關(guān)于“Spring如何實(shí)現(xiàn)自動(dòng)裝配”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
當(dāng)前題目:Spring如何實(shí)現(xiàn)自動(dòng)裝配
鏈接地址:http://www.chinadenli.net/article16/gpdigg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、外貿(mào)網(wǎng)站建設(shè)、Google、微信小程序、全網(wǎng)營(yíng)銷(xiāo)推廣、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
全網(wǎng)營(yíng)銷(xiāo)推廣知識(shí)