欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Spring依賴注入的示例分析

這篇文章給大家分享的是有關Spring依賴注入的示例分析的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

10年積累的網(wǎng)站建設、成都網(wǎng)站設計經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先網(wǎng)站設計后付款的網(wǎng)站建設流程,更有鏡湖免費網(wǎng)站建設讓你可以放心的選擇與我們合作。

一.依賴簡介

一個典型的企業(yè)應用程序不是由一個單一的對象組成(或Spring的說法中的bean)。即使是最簡單的應用程序也只有幾個對象一起工作來呈現(xiàn)最終用戶看作是一個連貫的應用程序。如何從定義許多獨立的bean定義到完全實現(xiàn)的應用程序,在這些應用程序中對象協(xié)作實現(xiàn)目標。

有關spring的設計模式和應用詳情可以參考我這篇文章《spring常用設計模式及應用》

二.依賴注入

依賴注入(DI)是一個過程,通過這個過程,對象可以通過構造函數(shù)參數(shù),工廠方法的參數(shù)或者在構造或返回對象實例后設置的屬性來定義它們的依賴關系從工廠方法。然后容器在創(chuàng)建bean時注入這些依賴關系。這個過程從根本上說是相反的,因此名為控制反轉(IoC),它本身通過使用類的直接構造或服務定位符模式來控制它自己的依賴關系的實例化或位置。

代碼與DI原則相比更加清晰,當對象提供依賴時,解耦更為有效。該對象不查找它的依賴關系,不知道依賴關系的位置或類。因此,您的類變得更容易測試,特別是當依賴關系在接口或抽象基類上時,它們允許在單元測試中使用存根或模擬實現(xiàn)。

DI存在兩種主要的變體,基于構造函數(shù)的依賴注入和基于Setter的依賴注入。

三.基于構造函數(shù)的依賴注入

基于構造器的 DI通過容器調(diào)用具有多個參數(shù)的構造器來完成,每個參數(shù)表示一個依賴關系。調(diào)用static具有特定參數(shù)的工廠方法來構造這個bean幾乎是等價的,而且這個討論同樣將參數(shù)作為構造函數(shù)和static工廠方法來處理。以下示例顯示了只能通過構造函數(shù)注入進行依賴注入的類。請注意,這個類沒有什么特別之處,它是一個POJO,它不依賴于容器特定的接口,基類或注釋。

public class SimpleMovieLister {

private MovieFinder movieFinder;

public SimpleMovieLister(MovieFinder movieFinder) {
this.movieFinder = movieFinder;
}
}

1.構造器參數(shù)匹配

構造函數(shù)參數(shù)解析匹配使用參數(shù)的類型進行。如果bean定義的構造函數(shù)參數(shù)中沒有潛在的歧義,那么bean定義中定義構造函數(shù)參數(shù)的順序就是在實例化bean時將這些參數(shù)提供給適當構造函數(shù)的順序。

package x.y;

public class Foo {

public Foo(Bar bar, Baz baz) {
// ...
   }
}

沒有潛在的歧義存在,假設Bar和Baz不是繼承關系。因此,以下配置好,你不需要指定構造器參數(shù)指標明確在<constructor-arg> 索引,類型或類型。

<beans>

 <bean id="foo" class="x.y.Foo">
       <constructor-arg ref="bar"/>
       <constructor-arg ref="baz"/>
   </bean>

   <bean id="bar" class="x.y.Bar"/>

   <bean id="baz" class="x.y.Baz"/>
</beans>

在前面的場景中,如果使用類型屬性顯式地指定構造函數(shù)參數(shù)的類型,容器可以使用與簡單類型的類型匹配。

<bean id="exampleBean" class="examples.ExampleBean">

 <constructor-arg type="int" value="7500000"/>
   <constructor-arg type="java.lang.String" value="42"/>
</bean>

使用索引屬性指定顯式構造函數(shù)參數(shù)的指數(shù)。

<bean id="exampleBean" class="examples.ExampleBean">

 <constructor-arg index="0" value="7500000"/>
   <constructor-arg index="1" value="42"/>
</bean>同樣也可以使用構造器參數(shù)名稱匹配

<bean id="exampleBean" class="examples.ExampleBean">

 <constructor-arg name="years" value="7500000"/>
   <constructor-arg name="ultimateAnswer" value="42"/>
</bean>

2.基于Setter方法

在調(diào)用無參數(shù)構造函數(shù)或無參數(shù)靜態(tài)工廠方法實例化bean時,基于bean的調(diào)用Setter方法是通過bean調(diào)用Setter方法完成的。

public class SimpleMovieLister {

private MovieFinder movieFinder;

public void setMovieFinder(MovieFinder movieFinder) {
this.movieFinder = movieFinder;
   }
}

Spring團隊通常提倡構造函數(shù)注入,因為它使一個能夠?qū)贸绦蚪M件作為不可變對象實現(xiàn),并確保所需的依賴項不是null。此外,構造函數(shù)注入的組件總是返回到完全初始化狀態(tài)的客戶機(調(diào)用)代碼中。作為一個方面說明,大量的構造函數(shù)的參數(shù)是一個糟糕的代碼的氣味,這意味著類可能有太多的責任和應該被更好的問題解決的適當分離。

Setter注入應該主要用于可選的依賴關系,這些依賴關系可以在類中分配合理的默認值。否則,非空檢查必須在代碼使用依賴項的任何地方執(zhí)行。第=一個優(yōu)勢就是在于setter方法使該類的對象能夠重新配置或重新注入。因此通過JMX MBean管理是setter注入一個引人注目的用例.

感謝各位的閱讀!關于“Spring依賴注入的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

當前標題:Spring依賴注入的示例分析
標題來源:http://aaarwkj.com/article42/gppeec.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、品牌網(wǎng)站設計、營銷型網(wǎng)站建設、網(wǎng)站維護、網(wǎng)站制作全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
精品乱码一区二区三区四区| 偷拍一区二区三区夫妻| 国产天堂亚洲国产碰碰| 国产成人一区二区二区三区 | 禁止18岁以下的视频| 亚洲精品一区二区影院| 年轻的少妇一区二区三区| 亚洲成人有码在线观看| 人妻一区日韩二区国产| 少妇精品久久久一区二区三区| 熟女人妻视频一区二区| 粉嫩美女精品一区二区| 欧美日韩av在线一区二区| 中文字幕在线五月婷婷| 亚洲情色精品国产一区| 漂亮人妻被中出中文字幕| 字幕日本欧美一区二区| 精品人妻一区二区三区四| 国产三级黄在线观看| 欧美日韩精品福利一区二区| 亚洲av一区二区在线看| 亚洲欧美综合日韩综合久久久| 国产精品久久护士96| 日本熟熟妇丰满人妻啪啪| 亚洲精品国产第一区| 国产欧美日韩亚洲精品区| 国产成人自拍视频网站| 免费观看在线黄色大片| 999久久免费精品国产| 国产精品欧美日韩精品| 97精品少妇一区二区三区| 在线观看午夜视频免费| 中文字幕乱码一区二区欧美| 中国吞精囗交免费视频| 91黑丝国产在线播放| 国产福利成人一区二区| 日韩激情小视频在线观看| 欧美日韩亚洲中文综合网| 九九九视频在线观看免费| av小说亚洲激情乱| 欧美另类亚洲综合久青草|