日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring----最小化Spring配置

發布時間:2023/12/2 javascript 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring----最小化Spring配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在Spring的配置文件中,我們可以使用<bean>元素定義Bean,以及使用<constructor-arg>或著<property>元素裝配bean,這對于包含少量Bean的應用來說以經非常不錯了,但是隨著應用的發展,我們不得不編寫越來越復雜的XML配置。
為解決這個問題,Spring提供了幾種技巧,可以幫助我們簡化XML的配置。

  • 自動裝配:有助于減少甚至消除<constructor-arg>和<property>元素,讓Spring自動識別如何裝配Bean的依賴關系
  • 自動檢測:比自動裝配更進一步,讓Spring能夠自動識別哪些類需要被裝配成Spring bean,從而減少對<bean>元素的使用。

我們首先 舉一個例子:
1.創建一個Singer類:

?

2.創建一個Instruments類繼承Instrument接口

3.創建一個Singer.xml文件:

4.測試方法:

5.運行結果

為了簡化上面案例的xml文件配置,我們可以通過一下四種自動裝配Bean的方案來實現
(1)byName自動裝配
在Spring中,所有的東西都會賦予一個名字,因此Bean的屬性也會有名字,加入屬性的名字剛好與要被裝配到該屬性的Bean的名字相同,那么Spring便可以通過byName的方式,將該Bean自動裝配到對應屬性中。

運行結果:

注意 :若時xml文件中存在多個Singer的bean,且均已byName的形式自動裝配,那么所有的Singer類裝配的均為同一個instrument。
若配置了byName自動裝配,而卻沒有id為instrument的bean,則Singer中instrument為空。

(2)byType自動裝配
其工作方式類似于byName自動裝配,只不過不是匹配名字,而是檢查屬性的類型。

運行結果:

注意:如果存在多個bean與需要裝配的屬性的類型都一致,那么Spring不會猜測那個bean更適合,而是選擇拋出異常。例如:

(3)constructor 自動裝配
如果我們要通過構造器來注入bean,可以通過設置autowire="constructor" 來取代
<constructor-arg>元素。Spring會自動匹配一個構造器所有入參的bean,并自動注入。
注意:constructor 自動裝配和byType自動裝配具有相同的局限性,當發現多個Bean匹配某個構造器的入參時,Spring不會嘗試猜測哪個Bean更適合自動裝配,此外,如果一個類有多個構造器,且都滿足自動裝配條件時,Spring也不會嘗試判斷哪個構造器更適合使用。
(4)最佳自動裝配
如果我們將autowire的屬性設置為autodetect,那么Spring便會為我們選擇最佳的自動裝配類型。
Spring會首先嘗試使用constructor自動裝配,如果沒有發現類型匹配的bean,將會嘗試byType自動裝配。

?

使用注解裝配
在使用基于注解裝配前,我們需要在Spring配置中去啟用他。

使用 @Autowired實現在動裝配
當我希望使用@Autowired讓Spring自動Singer,我們可以在需要裝配的屬性對應的set方法上添加

@Autowired注釋。例如:

結果:

@Autowired 不僅可以用于標注set方法,還可以用來標注需要自動裝配Bean的任意方法。包括構造方法。放@Autowired對構造方法進行標注時,在Spring的XML文件中即使沒有使用<constructor-arg>元素配置Bean,該構造器也會進行自動裝配

@Autowired還可以標注類的屬性,刪除set方法。

運行結果:

注意:@Autowired所標注的屬性,必須時可裝配的,如果沒用Bean可以裝配到@Autowired所標注的屬性中,便會拋出異常。

讓Spring盡早失敗,要好于在以后拋出空指針異常。

有時候屬性不一非要裝配,null值也是可以的,我們可以使用@Autowired的required屬性為false來配置自動裝配是可選的。

若required的值為false,當不存在可以裝配的Bean時,該屬性配裝配為null.

轉載于:https://www.cnblogs.com/red-evil/p/10058493.html

總結

以上是生活随笔為你收集整理的Spring----最小化Spring配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。