spring的自動(dòng)裝配功能的定義:無(wú)須在Spring配置文件中描述javaBean之間的依賴(lài)關(guān)系(如配置、)。IOC容器會(huì)自動(dòng)建立javabean之間的關(guān)聯(lián)關(guān)系。
簡(jiǎn)而言之,一個(gè)類(lèi)就是一個(gè)Bean,Spring框架是一個(gè)Bean容器,替我們管理這些Bean。類(lèi)似于舞臺(tái)劇,需要很多角色,Spring就是來(lái)組織各個(gè)角色之間的關(guān)系,然后對(duì)這些角色進(jìn)行調(diào)動(dòng)。
在Spring框架中共有5種自動(dòng)裝配,讓我們逐一分析。
no:這是Spring框架的默認(rèn)設(shè)置,在該設(shè)置下自動(dòng)裝配是關(guān)閉的,開(kāi)發(fā)者需要自行在bean定義中用標(biāo)簽明確的設(shè)置依賴(lài)關(guān)系。
byName:該選項(xiàng)可以根據(jù)bean名稱(chēng)設(shè)置依賴(lài)關(guān)系。當(dāng)向一個(gè)bean中自動(dòng)裝配一個(gè)屬性時(shí),容器將根據(jù)bean的名稱(chēng)自動(dòng)在在配置文件中查詢一個(gè)匹配的bean。如果找到的話,就裝配這個(gè)屬性,如果沒(méi)找到的話就報(bào)錯(cuò)。
byType:該選項(xiàng)可以根據(jù)bean類(lèi)型設(shè)置依賴(lài)關(guān)系。當(dāng)向一個(gè)bean中自動(dòng)裝配一個(gè)屬性時(shí),容器將根據(jù)bean的類(lèi)型自動(dòng)在在配置文件中查詢一個(gè)匹配的bean。如果找到的話,就裝配這個(gè)屬性,如果沒(méi)找到的話就報(bào)錯(cuò)。
constructor:造器的自動(dòng)裝配和byType模式類(lèi)似,但是僅僅適用于與有構(gòu)造器相同參數(shù)的bean,如果在容器中沒(méi)有找到與構(gòu)造器參數(shù)類(lèi)型一致的bean,那么將會(huì)拋出異常。
autodetect:該模式自動(dòng)探測(cè)使用構(gòu)造器自動(dòng)裝配或者byType自動(dòng)裝配。首先,首先會(huì)嘗試找合適的帶參數(shù)的構(gòu)造器,如果找到的話就是用構(gòu)造器自動(dòng)裝配,如果在bean內(nèi)部沒(méi)有找到相應(yīng)的構(gòu)造器或者是無(wú)參構(gòu)造器,容器就會(huì)自動(dòng)選擇byTpe的自動(dòng)裝配方式。
以上就是對(duì)Spring框架中5種自動(dòng)裝配的闡述,歡迎大家一起交流學(xué)習(xí)。此外,針對(duì)spring框架的學(xué)習(xí),千鋒還推出了一套專(zhuān)門(mén)的視頻,主要是針對(duì)spring框架原理和具體應(yīng)用進(jìn)行講解。
同時(shí),還有框架整合開(kāi)發(fā)(SSH/SSS)、RESTful架構(gòu)和移動(dòng)端接口設(shè)計(jì)、第三方接口和在線支付功能、網(wǎng)站安全和Spring Security應(yīng)用實(shí)戰(zhàn)、復(fù)雜用戶交互處理和Spring Web Flow的應(yīng)用、MyBatis的應(yīng)用和SSM整合,將深入研究其中涉及到的數(shù)據(jù)結(jié)構(gòu)和算法,對(duì)學(xué)生的技術(shù)深度有一個(gè)質(zhì)的提升。
學(xué)習(xí)java開(kāi)發(fā),可以參考千鋒提供的java學(xué)習(xí)路線,該學(xué)習(xí)路線羅列了各階段完整的java學(xué)習(xí)知識(shí),根據(jù)千鋒提供的java學(xué)習(xí)路線圖結(jié)合千鋒全套java視頻教程,可以讓你對(duì)學(xué)好java開(kāi)發(fā)需要掌握的知識(shí)有個(gè)清晰的了解,并能快速入門(mén)java開(kāi)發(fā)。