Spring Bean裝配之Autowired註解

2021-08-21 22:20:38 字數 2417 閱讀 4526

@autowired

public

void

setinjectiondao(injectiondao injectiondao)

@autowired(required=false)

public

void

setinjectiondao(injectiondao injectiondao)

預設情況下,如果因找不到合適的bean將會導致autowiring失敗丟擲異常,可以通過將其required設定為false表示並非必須,每個類只能有乙個構造器標記為required=true,也就是只能有乙個構造器為必須,這種情況下建議使用@required註解:

@required

public

void

setinjectiondao(injectiondao injectiondao)

@required表示標記的bean屬性在bean裝配時必須被填充,通過在bean定義或者自動裝配乙個明確的屬性值

public

class

beansutowired

下面的示例中,list新增了@autowired註解,那麼所有的實現beaninte***ce介面的bean,假如有beanimplonebeanimpltwo都實現了beaninte***ce介面,那麼這時list中將包含有beanimplonebeanimpltwo

@component

public

class

beaninvoker

implements

beaninte***ce

}

如果希望陣列有序,可以使用@order註解或者實現org.springframework.core.ordered介面,但是對map無效

@order(1)

@component

public

class

beanimpltwo

implements

beaninte***ce

下面的示例中,map新增了@autowired註解,那麼所有的實現beaninte***ce介面的bean,加入有beanimplonebeanimpltwo都實現了beaninte***ce介面,那麼這時map中將包含有鍵為bean名稱和值為bean的兩個元素。

@component

public

class

beaninvoker

implements

beaninte***ce

}

@autowired

@qualifier("beanimpltwo")

private beaninte***ce beaninte***ce;

可以在bean的定義中使用@qualifier註解給他限定乙個範圍,比如

@qualifier("beanimpl")

@component

public

class

beanimpltwo

implements

beaninte***ce

然後在注入時,使用@qualifier限定,則下面的list將會匹配到所有@qualifier("beanimp")bean

@autowired

@qualifier("beanimpl")

private listlist;

參閱:

慕課網:spring入門篇

spring bean的自動裝配

spring bean的自動裝配 在spring框架應用場景中會有這麼一種情況。乙個bean在不同的使用類裡面都要配置。這個bean相對來說是單獨的。也就是說如果要裝配這個bean.在不同的使用類裡面都需要寫相關的 注入 那有沒有這麼一種方式。可以通過配置自動的來注入bean到相關的屬性中去。spr...

Spring Bean的自動裝配

當bean的屬性很少的時候,我們對它進行配置的時候就使用很少的或者元素進行裝配,但是隨著工程體積的增大,bean也可能變得複雜,這時候配置檔案也會變得複雜,和就會變得很多,寫起來就會很費勁,還好spring為我們提供了自動裝配的機制。spring ioc容器可以自動裝配bean,只需要在的autow...

Spring Bean的自動裝配

乙個bean使用其他的bean,除了顯式的配置xml檔案外,也可以通過配置 bean 的autowire屬性來實現bean的自動裝配。自動裝配的好處是減少了構造器注入和setter注入配置 其實就是少了 property 標籤,但是bean裡面set方法還是必須的 減少了配置檔案的長度。spring...