創(chuàng)新互聯(lián)www.cdcxhl.cn八線(xiàn)動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買(mǎi)多久送多久,劃算不套路!
本篇文章給大家分享的是有關(guān)Spring的依賴(lài)注入,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話(huà)不多說(shuō),跟著小編一起來(lái)看看吧。
依賴(lài)注入就是將實(shí)例變量傳入到一個(gè)對(duì)象中去,Spring提出了依賴(lài)注入的思想,即依賴(lài)類(lèi)不由程序員實(shí)例化,而是通過(guò)Spring容器幫我們new指定實(shí)例并且將實(shí)例注入到需要該對(duì)象的類(lèi)中。依賴(lài)注入的另一種說(shuō)法是"控制反轉(zhuǎn)"。通俗的理解是:平常我們new一個(gè)實(shí)例,這個(gè)實(shí)例的控制權(quán)是我們程序員。而控制反轉(zhuǎn)是指new實(shí)例工作不由我們程序員來(lái)做而是交給Spring容器來(lái)做。
Spring 能有效地組織J2EE應(yīng)用各層的對(duì)象。不管是控制層的Action對(duì)象,還是業(yè)務(wù)層的Service對(duì)象,還是持久層的DAO對(duì)象,都可在Spring的 管理下有機(jī)地協(xié)調(diào)、運(yùn)行。Spring將各層的對(duì)象以松耦合的方式組織在一起,Action對(duì)象無(wú)須關(guān)心Service對(duì)象的具體實(shí)現(xiàn),Service對(duì) 象無(wú)須關(guān)心持久層對(duì)象的具體實(shí)現(xiàn),各層對(duì)象的調(diào)用完全面向接口。當(dāng)系統(tǒng)需要重構(gòu)時(shí),代碼的改寫(xiě)量將大大減少。
上面所說(shuō)的一切都得宜于Spring的核心機(jī)制,依賴(lài)注入。依賴(lài)注入讓bean與bean之間以配置文件組織在一起,而不是以硬編碼的方式耦合在一起。理解依賴(lài)注入。
依賴(lài)注入(Dependency Injection)和控制反轉(zhuǎn)(Inversion of Control)是同一個(gè)概念。具體含義是:當(dāng)某個(gè)角色(可能是一個(gè)Java實(shí)例,調(diào)用者)需要另一個(gè)角色(另一個(gè)Java實(shí)例,被調(diào)用者)的協(xié)助時(shí),在 傳統(tǒng)的程序設(shè)計(jì)過(guò)程中,通常由調(diào)用者來(lái)創(chuàng)建被調(diào)用者的實(shí)例。但在Spring里,創(chuàng)建被調(diào)用者的工作不再由調(diào)用者來(lái)完成,因此稱(chēng)為控制反轉(zhuǎn);創(chuàng)建被調(diào)用者 實(shí)例的工作通常由Spring容器來(lái)完成,然后注入調(diào)用者,因此也稱(chēng)為依賴(lài)注入。
不管是依賴(lài)注入,還是控制反轉(zhuǎn),都說(shuō)明Spring采用動(dòng)態(tài)、靈活的方式來(lái)管理各種對(duì)象。對(duì)象與對(duì)象之間的具體實(shí)現(xiàn)互相透明。
舉例:Set注入
package com.bless.springdemo.action; public class SpringAction { //注入對(duì)象springDao private SpringDao springDao; //一定要寫(xiě)被注入對(duì)象的set方法 public void setSpringDao(SpringDao springDao) { this.springDao = springDao; } public void ok(){ springDao.ok(); } }
以上就是Spring的依賴(lài)注入,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。