亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Spring注解實現自動裝配過程解析

瀏覽:6日期:2023-09-14 15:46:54

在IOC容器中學習相關注解(常用)

1. @Autowireda.作用對象:(官網解釋)

1. You can apply the @Autowired annotation to constructors:

2.you can also apply the @Autowired annotation to 'traditional' setter methods:

3.You can also apply the annotation to methods with arbitrary names and/or multiple arguments:

4.You can apply @Autowired to fields as well and even mix it with constructors:

5.It is also possible to provide all beans of a particular type from the ApplicationContext by adding the annotation to a field or method that expects an array of that type:

6.Even typed Maps can be autowired as long as the expected key type is String. The Map values will contain all beans of the expected type, and the keys will contain the corresponding bean names:等

總結一下就是: 可以在構造器,set方法,任意方法和屬性上,數組上,String類型的Map上等。

Notes:1.@Autowired默認按類型裝配(這個注解是屬業spring的),默認情況下必須要求依賴對象必須存在,如果要允許null值,可以設置它的required屬性為false。

2.可以與@qualifier 共同使用, 當對象類型和名字發生沖突時,該注解可用于指定特定的對象。

@Autowired() @Qualifier('cat')

可以找到id='cat'的beanb.功能:它可以對類成員變量、方法及構造函數進行標注,完成自動裝配的工作。通過 @Autowired的使用來消除 set ,get方法。2.@Resourcea.功能: @Resource的作用相當于@Autowired,只不過@Autowired按byType自動注入,而@Resource默認按 byName自動注入

@Resource有兩個屬性是比較重要的,分是name和type,Spring將@Resource注解的name屬性解析為bean的名字,而type屬性則解析為bean的類型。所以如果使用name屬性,則使用byName的自動注入策略,而使用type屬性時則使用byType自動注入策略。如果既不指定name也不指定type屬性,這時將通過反射機制使用byName自動注入策略。

3.@Requireda.功能:@Required 注釋應用于 bean 屬性的 setter 方法,它表明受影響的 bean 屬性在配置時必須放在 XML 配置文件中,否則容器就會拋出一個 BeanInitializationException 異常。下面顯示的是一個使用 @Required 注釋的示例。

這有一個很好的解釋和例子關于@Required注解

使用@Autowired后的優點

原來我們需要手動注入之后才可以使用employee對象:

<bean> <property name='employee' ref='employee'/>

若沒有進行手動注入,不會從測試代碼中 獲取到employee對象。

使用@Autowired之后

不需要手動注入。

<bean />

只用在屬性上進行@Autowired注釋標注

Spring注解實現自動裝配過程解析

在測試類中即可直接調用:

public class MyTest { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext('applicationContext.xml'); Car car = (Car) context.getBean('car'); car.getOwner().MyEmployment(); }}

系統首先根據 bean中class類型進行確認,再和bean中id名進行確認,最后確定所定的注入對象。 若多個bean 名字不同,且類型相同則該注釋失效。(可使用@Qualifier 進行唯一指定)

例如:

<bean /> <bean />

運行相同代碼會報如下錯誤:

Spring注解實現自動裝配過程解析

此時加上@Qualifier注釋如下,代碼可正常編譯:

Spring注解實現自動裝配過程解析

運行結果:

Spring注解實現自動裝配過程解析

如分享內容中有問題的地方,還望您多加指出,感謝您的瀏覽。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
主站蜘蛛池模板: 在线观看黄色小视频 | 久久久久久国产精品免费免 | 亚洲欧美久久婷婷爱综合一区天堂 | 日本久久久久久久中文字幕 | 久久精品国产91久久麻豆自制 | 黄色三 | 国产一久久香蕉国产线看观看 | 天天鲁天天玩天天爽天天 | 成年性网站 | 青青草99久久精品国产综合 | 国产欧美日韩另类 | 成年人黄视频 | 国产制服丝袜在线 | 91在线精品视频 | 成人午夜视频一区二区国语 | 亚洲高清日韩精品第一区 | 欧美一区二区三区在线观看不卡 | 免费特黄级夫费生活片 | 免费的黄网站 | 亚洲欧美一级夜夜爽w | 国产成人亚洲综合a∨婷婷 国产成人亚洲综合无 | 国模精品视频一区二区三区 | 成人精品 | 国产限制级在线 | 国产黄色毛片视频 | 1024手机在线观看旧版国产 | 日本在线日本中文字幕日本在线视频播放 | 日韩精品视频免费网址 | 网站视频大片www | 亚洲男女免费视频 | 日本高清视频一区二区 | 黄色一级视频在线观看 | 欧美日韩一本大道香蕉欧美 | 国产精品亚洲二区在线 | 香蕉视频国产精品 | 亚洲欧美国产高清va在线播放 | 国产91色综合久久免费分享 | 朴妮唛1一30集福利在线播放 | 日韩经典欧美精品一区 | 亚洲好视频 | 妖精www视频在线观看高清 |