久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

Spring注解實現(xiàn)自動裝配過程解析

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

在IOC容器中學(xué)習(xí)相關(guān)注解(常用)

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

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:等

總結(jié)一下就是: 可以在構(gòu)造器,set方法,任意方法和屬性上,數(shù)組上,String類型的Map上等。

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

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

@Autowired() @Qualifier('cat')

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

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

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

這有一個很好的解釋和例子關(guān)于@Required注解

使用@Autowired后的優(yōu)點

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

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

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

使用@Autowired之后

不需要手動注入。

<bean />

只用在屬性上進行@Autowired注釋標(biāo)注

Spring注解實現(xiàn)自動裝配過程解析

在測試類中即可直接調(diào)用:

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

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

例如:

<bean /> <bean />

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

Spring注解實現(xiàn)自動裝配過程解析

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

Spring注解實現(xiàn)自動裝配過程解析

運行結(jié)果:

Spring注解實現(xiàn)自動裝配過程解析

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 久久丁香| 欧美xxxx色视频在线观看免费 | 男人久久天堂 | 一区二区日韩 | 国产成人99久久亚洲综合精品 | 日韩成人在线观看视频 | 久久精品 | 特级毛片在线大全免费播放 | 亚洲欧美另类久久久精品2019 | 国产免费自拍视频 | 日韩久久一区二区 | 久久九 | 91亚洲精品在线观看 | 国产精品第一区第27页 | 日韩一区二区在线观看 | 中文二区| 理论片免费在线观看 | 中文字幕日韩久久 | 人人干人人干人人 | 久久国产精品免费一区二区三区 | 欧美性猛交xxxx黑人猛交 | 草草视频在线观看 | 国产综合视频在线观看 | 91在线区| 亚洲欧美日韩另类精品一区二区三区 | 成人一级片 | 成人中文视频 | 欧洲精品视频在线观看 | 黄色毛片视频网站 | 伊人亚洲 | 亚洲一区av| 91视频三区| 91男女视频 | 伊人网站 | 精品国内| 国产视频三区 | 日日操av| 国产高清自拍 | 亚洲狠狠久久综合一区77777 | 欧美综合久久 | 久久网国产 |