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

歡迎訪問 生活随笔!

生活随笔

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

javascript

Spring精华问答 | Spring Bean的自动装配是怎么回事?

發布時間:2024/9/27 javascript 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring精华问答 | Spring Bean的自动装配是怎么回事? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

戳藍字“CSDN云計算”關注我們哦!


Spring框架是由于軟件開發的復雜性而創建的。Spring使用的是基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅僅限于服務器端的開發。從簡單性、可測試性和松耦合性角度而言,絕大部分Java應用都可以從Spring中受益。今天,就讓我們來看看關于Spring更加有深度的問題吧。


1

? Q:如何向Spring Bean中注入一個Java.util.Properties?


A:第一種方法是使用如下面代碼所示的<props>?標簽:也可用”util:”命名空間來從properties文件中創建出一個propertiesbean,然后利用setter方法注入bean的引用。


2

Q:Spring Bean的自動裝配是怎么回事?


A:在Spring框架中,在配置文件中設定bean的依賴關系是一個很好的機制,Spring容器還可以自動裝配合作關系bean之間的關聯關系。這意味著Spring可以通過向Bean Factory中注入的方式自動搞定bean之間的依賴關系。自動裝配可以設置在每個bean上,也可以設定在特定的bean上。

下面的XML配置文件表明了如何根據名稱將一個bean設置為自動裝配:

1

<bean id="employeeDAO" class="com.howtodoinjava.EmployeeDAOImpl" autowire="byName" />

除了bean配置文件中提供的自動裝配模式,還可以使用@Autowired注解來自動裝配指定的bean。在使用@Autowired注解之前需要在按照如下的配置方式在Spring配置文件進行配置才可以使用。


1

<context:annotation-config />


也可以通過在配置文件中配置AutowiredAnnotationBeanPostProcessor?達到相同的效果。


1

<bean class ="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>

配置好以后就可以使用@Autowired來標注了。


1

2

3

4

@Autowired

public EmployeeDAOImpl ( EmployeeManager manager ) {

????this.manager = manager;

}


3

? ? ? ?Q:自動裝配模式有什么區別?


? ? ? ?A:在Spring框架中共有5種自動裝配,讓我們逐一分析。


no:這是Spring框架的默認設置,在該設置下自動裝配是關閉的,開發者需要自行在bean定義中用標簽明確的設置依賴關系。


byName:該選項可以根據bean名稱設置依賴關系。當向一個bean中自動裝配一個屬性時,容器將根據bean的名稱自動在在配置文件中查詢一個匹配的bean。如果找到的話,就裝配這個屬性,如果沒找到的話就報錯。


byType:該選項可以根據bean類型設置依賴關系。當向一個bean中自動裝配一個屬性時,容器將根據bean的類型自動在在配置文件中查詢一個匹配的bean。如果找到的話,就裝配這個屬性,如果沒找到的話就報錯。


constructor:造器的自動裝配和byType模式類似,但是僅僅適用于與有構造器相同參數的bean,如果在容器中沒有找到與構造器參數類型一致的bean,那么將會拋出異常。


autodetect:該模式自動探測使用構造器自動裝配或者byType自動裝配。首先,首先會嘗試找合適的帶參數的構造器,如果找到的話就是用構造器自動裝配,如果在bean內部沒有找到相應的構造器或者是無參構造器,容器就會自動選擇byTpe的自動裝配方式。


4

Q:如何開啟基于注解的自動裝配?


A:要使用?@Autowired,需要注冊?AutowiredAnnotationBeanPostProcessor,可以有以下兩種方式來實現:

1、引入配置文件中的<bean>下引入?<context:annotation-config>

1

2

3

<beans>

????<context:annotation-config />

</beans>

2、在bean配置文件中直接引入AutowiredAnnotationBeanPostProcessor


1

2

3

<beans>

????<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>

</beans>


??Q:請舉例解釋@Autowired注解?


A:@Autowired注解對自動裝配何時何處被實現提供了更多細粒度的控制。@Autowired注解可以像@Required注解、構造器一樣被用于在bean的設值方法上自動裝配bean的屬性,一個參數或者帶有任意名稱或帶有多個參數的方法。

比如,可以在設值方法上使用@Autowired注解來替代配置文件中的?<property>元素。當Spring容器在setter方法上找到@Autowired注解時,會嘗試用byType?自動裝配。

當然我們也可以在構造方法上使用@Autowired?注解。帶有@Autowired?注解的構造方法意味著在創建一個bean時將會被自動裝配,即便在配置文件中使用<constructor-arg>?元素。

1

2

3

4

5

6

7

8

9

10

11

12

13

public class TextEditor {

???private SpellChecker spellChecker;

?

???@Autowired

???public TextEditor(SpellChecker spellChecker){

??????System.out.println("Inside TextEditor constructor." );

??????this.spellChecker = spellChecker;

???}

?

???public void spellCheck(){

??????spellChecker.checkSpelling();

???}

}

下面是沒有構造參數的配置方式:


1

2

3

4

5

6

7

8

9

10

11

12

13

<beans>

?

???<context:annotation-config/>

?

???<!-- Definition for textEditor bean without constructor-arg? -->

???<bean id="textEditor" class="com.howtodoinjava.TextEditor">

???</bean>

?

???<!-- Definition for spellChecker bean -->

???<bean id="spellChecker" class="com.howtodoinjava.SpellChecker">

???</bean>

?

</beans>



小伙伴們沖鴨,后臺留言區等著你!

關于Spring,今天你學到了什么?還有哪些不懂的?除此還對哪些話題感興趣?快來留言區打卡啦!留言方式:打開第XX天,答:……

同時歡迎大家搜集更多問題,投稿給我們!風里雨里留言區里等你~



福利

掃描添加小編微信,備注“姓名+公司職位”,加入【云計算學習交流群】,和志同道合的朋友們共同打卡學習!



推薦閱讀:

  • 圖解分布式架構的發展和演進 | 技術干貨

  • Docker 系列學習文章 | 什么是容器云?

  • 任正非:華為海思芯片不是“備胎”!

  • 揭秘清華 AI 學堂班:姚期智擔任首席教授,2019 年首批招收 30 人

  • Google Android 向華為“閉源”!華為手機迎來至暗時刻!

  • "兩年前我對區塊鏈的了解為零, 兩年后我成了工程師" 我是如何得到第一份工作的?

  • 《使女的故事》大火,AI是背后最大推手?


真香,朕在看了! 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Spring精华问答 | Spring Bean的自动装配是怎么回事?的全部內容,希望文章能夠幫你解決所遇到的問題。

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