簡體   English   中英

彈簧自動接線

[英]Spring Auto-wiring

假設我有兩個類Circle和Rectangle實現一個稱為Shape的接口。
我有以下課程:

public class ObjectFactory {
    @Autowired
    @Qualifier("circle")
    Shape shape;
.......
.......
.......
}

我想做的是刪除@Qualifier並使自動裝配取決於某些條件(例如,如果條件為true,則注入Circle,如果條件為false,則注入矩形)或使接線取決於命名約定。
有沒有辦法做到這一點 ?

讓我解釋一下,如果我刪除@Qualifier批注,那么我將遇到以下異常

org.springframework.beans.factory.NoSuchBeanDefinitionException:
No unique bean of type [com.app.objects.Shape] is defined: 
expected single matching bean but found 2: [circle, rectangle]

有沒有一種方法可以通過編程方式處理該異常,以實現條件相關的自動裝配?

您可以在@Resource使用SpEL ,也許也可以在@Qualifier使用它。

但是通常可以將此類邏輯放置在FactoryBean ,您可以在其中確定要返回的實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM