這篇文章給大家介紹Spring 裝配是怎樣的,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),香格里拉企業(yè)網(wǎng)站建設(shè),香格里拉品牌網(wǎng)站建設(shè),網(wǎng)站定制,香格里拉網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,香格里拉網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
single 單例模式(默認(rèn))
IOC容器僅創(chuàng)建一個(gè)Bean實(shí)例,IOC容器每次返回的是同一個(gè)Bean實(shí)例。
IOC容器可以創(chuàng)建多個(gè)Bean實(shí)例,每次返回的都是一個(gè)新的實(shí)例。
該屬性僅對HTTP請求產(chǎn)生作用,使用該屬性定義Bean時(shí),每次HTTP請求都會創(chuàng)建一個(gè)新的Bean,適用于WebApplicationContext環(huán)境。
該屬性僅用于HTTP Session,同一個(gè)Session共享一個(gè)Bean實(shí)例。不同Session使用不同的實(shí)例。
該屬性僅用于HTTP Session,同session作用域不同的是,所有的Session共享一個(gè)Bean實(shí)例。
byName自動注入:
byType自動注入:
按照類型裝配。
spring2.5之后支持注解裝配,,需要導(dǎo)入約束
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd">
它可以對類成員變量、方法及構(gòu)造函數(shù)進(jìn)行標(biāo)注,完成自動裝配的工作。(也可用在set方法上)
需要符合byname規(guī)范,且在beans中注冊。
Autowired有一個(gè)屬性required,默認(rèn)為true。
public @interface Autowired { boolean required() default true;}
設(shè)置為false,表示可以為空
我們可以經(jīng)常見到這種寫法,表示自動裝配到這個(gè)類:
@Autowired private MovieCatalog movieCatalog;
@Resource的作用和@Autowired相同,@Autowired按byType自動注入,@Resource默認(rèn)按 byName自動注入罷了。@Resource有兩個(gè)屬性是比較重要的,分是name和type,Spring將@Resource注解的name屬性解析為bean的名字,而type屬性則解析為bean的類型。所以如果使用name屬性,則使用byName的自動注入策略,而使用type屬性時(shí)則使用byType自動注入策略。如果既不指定name也不指定type屬性,這時(shí)將通過反射機(jī)制使用byName自動注入策略。
@Resources按名字,是JDK的,@Autowired按類型,是Spring的。
關(guān)于Spring 裝配是怎樣的就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。