成人免费看黄网站无遮挡,caowo999,se94se欧美综合色,a级精品九九九大片免费看,欧美首页,波多野结衣一二三级,日韩亚洲欧美综合

基于 Spring 框架的依賴(lài)注入研究論文

時(shí)間:2021-04-16 12:58:57 論文 我要投稿

基于 Spring 框架的依賴(lài)注入研究論文

  引言

基于 Spring 框架的依賴(lài)注入研究論文

  依賴(lài)注入(Dependency Injection)或者說(shuō)控制反轉(Inversionof Control)是 Spring 框架結構的核心之一; Spring 框架結構的系統中,DI 可以為任意對象動(dòng)態(tài)的提供所需,代替了過(guò)去在控制對象生命周期和關(guān)系時(shí)需要直接依靠代碼的方式。

  1.依賴(lài)注入的原理與實(shí)現

  依賴(lài)注入(DI)和依賴(lài)查找(Dependency Lookup)共同組成控制反轉(IoC)。從原理的角度來(lái)說(shuō),依賴(lài)注入和控制反轉是沒(méi)有不同的,可以看作是從兩個(gè)角度來(lái)闡述一個(gè)概念,即基于 Spring的架構系統中,在一個(gè)對象(調用者)為另一個(gè)對象(被調用者)協(xié)助工作(調用)時(shí),不用創(chuàng )建,該調用由 Spring 的 Bean 完成,也就是控制反轉。

  依賴(lài)注入是使用 Reflection 實(shí)現的,在 Java 1.3 以后,有一個(gè)重要特性是 Reflection 可以當執行系統的`時(shí)候,進(jìn)行動(dòng)態(tài)的創(chuàng )建、運行和修改實(shí)例。舉個(gè)例子,當需要進(jìn)行數據庫操作時(shí),不通過(guò)Spring 的做法是在操作中編寫(xiě)命令代碼以得到 Connection,通過(guò)Spring 的做法是在系統運行中得到 Connection 并注入,來(lái)對各個(gè)對象進(jìn)行控制。

  依賴(lài)注入不僅可以在容器中注入一般屬性值,也能將其他引用注入。在實(shí)際應用中,如果要調用實(shí)例,不再需要各組件應用Factory 模式,也不再需要依靠編寫(xiě)代碼實(shí)現低耦合,而是可以做到實(shí)例的自動(dòng)提供,也就是達到了程序的“按需分配”。

  Bean 的接收和管理由控制反轉實(shí)現,即定位、配置、實(shí)例化并且構造依賴(lài)應用程序的 Bean。BeanFactory 是 Spring 框架中的控制反轉容器,項目中通常使用 XML 方式來(lái)描述對象間的依賴(lài)關(guān)系,配置元數據,如 XmlBeanFactory 可完成完全可配置系統。

  在 Spring 框架中,控制反轉管理是通過(guò)依賴(lài)注入進(jìn)行的。依賴(lài)注入包括設置方式注入(Setter Injection)和構造子注入(Constructor Injection)兩種。SI 是通過(guò) JavaBean 屬性進(jìn)行依賴(lài)注入,CI 是通過(guò)構造子參數進(jìn)行依賴(lài)注入。JavaBean 經(jīng)由 Spring框架的管理配置可以得到低耦合的系統,實(shí)現系統的分層架構。

  2.注入方式的對比

  既然 Spring 框架支持兩種依賴(lài)注入方式,即設置方式注入和構造子注入,那么它們各有何優(yōu)勢呢?

  設置方式注入可以通過(guò) Setter 很簡(jiǎn)單直接的進(jìn)行設定,使得編寫(xiě)代碼更加方便自如,這與傳統的 JavaBean 很相似,有利于程序員的掌握和使用。設置方式注入還可以解決由于依賴(lài)關(guān)系復雜,閱讀困難構造器太大的問(wèn)題。

  構造子注入不可以通過(guò) Setter 進(jìn)行設定,其依賴(lài)關(guān)系均在構造器中完成設定,不依靠 Bean 進(jìn)行依賴(lài)關(guān)系的變化,不可能發(fā)生依賴(lài)關(guān)系被后面編寫(xiě)的代碼破壞的現象,更能發(fā)揮自身的作用。構造子注入可以通過(guò)創(chuàng )建組件來(lái)實(shí)現改變依賴(lài)關(guān)系,同時(shí)由于設定集中在構造器,組件關(guān)系高內聚。

  3.項目應用

  系統的擴展以及維護通過(guò)系統組件的松散耦合得以加強,這種低耦合是由業(yè)務(wù)邏輯與控制器,業(yè)務(wù)邏輯與 DAO 的依賴(lài)來(lái)實(shí)現的。依賴(lài)業(yè)務(wù)邏輯接口,即針對此進(jìn)行編程,跟具體實(shí)現類(lèi)以及控制器沒(méi)有關(guān)系,具體實(shí)現類(lèi)以及業(yè)務(wù)邏輯組件也沒(méi)有關(guān)系。Spring 框架中組件均為 Bean,例如 SessionFactory、事務(wù)管理器、數據源等,因此所有組件在應用中的管理均采用Bean 方式,Spring對創(chuàng )建 Bean 以及 Bean 的生命周期來(lái)管理。其依賴(lài)關(guān)系是通過(guò)配置文件給 Bean 進(jìn)行精確的屬性注入來(lái)組織和運用的,而不是依靠編寫(xiě)代碼。

  在A(yíng)ction類(lèi)的內部通過(guò)依賴(lài)注入使得進(jìn)行業(yè)務(wù)邏輯操作的時(shí)候,實(shí)現低耦合以及組件調用方便。另外,在業(yè)務(wù)邏輯組件中通過(guò)依賴(lài)注入底層 DAO 組件完成數據庫操作。

【基于 Spring 框架的依賴(lài)注入研究論文】相關(guān)文章:

關(guān)于構建基于崗位對接的教學(xué)過(guò)程框架的研究論文09-05

基于約束網(wǎng)絡(luò )的航天器通用任務(wù)規劃框架的研究論文10-30

基于約束網(wǎng)絡(luò )的航天器通用任務(wù)規劃框架研究論文10-30

彈性城市及規劃框架研究論文10-28

專(zhuān)業(yè)論文:基于Struts+Spring的Web應用設計與實(shí)現04-02

基于EVA的價(jià)值創(chuàng )造研究論文10-26

基于課堂的教師行動(dòng)研究的論文10-21

軟件安全性保障框架研究論文11-02