色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

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

Spring注解實(shí)現(xiàn)自動(dòng)裝配過程解析

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

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

1. @Autowireda.作用對(duì)象:(官網(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)按類型裝配(這個(gè)注解是屬業(yè)spring的),默認(rèn)情況下必須要求依賴對(duì)象必須存在,如果要允許null值,可以設(shè)置它的required屬性為false。

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

@Autowired() @Qualifier('cat')

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

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

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

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

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

原來我們需要手動(dòng)注入之后才可以使用employee對(duì)象:

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

若沒有進(jìn)行手動(dòng)注入,不會(huì)從測(cè)試代碼中 獲取到employee對(duì)象。

使用@Autowired之后

不需要手動(dòng)注入。

<bean />

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

Spring注解實(shí)現(xiàn)自動(dòng)裝配過程解析

在測(cè)試類中即可直接調(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類型進(jìn)行確認(rèn),再和bean中id名進(jìn)行確認(rèn),最后確定所定的注入對(duì)象。 若多個(gè)bean 名字不同,且類型相同則該注釋失效。(可使用@Qualifier 進(jìn)行唯一指定)

例如:

<bean /> <bean />

運(yùn)行相同代碼會(huì)報(bào)如下錯(cuò)誤:

Spring注解實(shí)現(xiàn)自動(dòng)裝配過程解析

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

Spring注解實(shí)現(xiàn)自動(dòng)裝配過程解析

運(yùn)行結(jié)果:

Spring注解實(shí)現(xiàn)自動(dòng)裝配過程解析

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

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

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 亚洲夜色夜色综合网站 | 国产欧美日韩精品一区二区三区 | 免费一级视频在线播放 | 亚洲国产精品ⅴa在线观看 亚洲国产精品aaa一区 | 日本特爽特黄特刺激大片 | 色偷偷成人网免费视频男人的天堂 | 欧美自拍视频 | 手机在线观看亚洲国产精品 | 欧美一级视频在线观看欧美 | 国产成人精品免费视频软件 | 国产一级二级三级视频 | 日韩精品无码一区二区三区 | 亚洲网站www | 成人国产在线视频在线观看 | 一级女毛片 | 成人国产精品免费网站 | 伊人精品视频 | 亚洲久久久久 | 一级欧美视频 | 韩国主播19福利视频在线 | 亚洲综合色一区二区三区小说 | 深夜做爰性大片中文 | 国产成人精品综合在线 | 中国三级网站 | 国内精自品线一区91 | 亚洲天堂精品在线观看 | 欧美手机在线视频 | 国产美女作爱全过程免费视频 | 日本久久综合网 | 九九久久久久午夜精选 | 国产一区二区三区久久 | 国产精品成人在线播放 | 国产精品大全国产精品 | 杨幂国产精品福利在线观看 | 国产一区二区不卡 | 九九精品免视看国产成人 | 免费精品一区二区三区在线观看 | 精品久久久久久影院免费 | 亚洲一区二区三区不卡视频 | 国产成人99精品免费观看 | 国产免费成人在线视频 |