簡體   English   中英

Spring 多個bean:除了`@Primary`之外還有其他優先級注釋嗎?

[英]Spring multiple beans: Are there other precedence annotations besides `@Primary`?

我將首先解釋我的情況。 我們的應用程序分為共享項目(包含所有項目的代碼)和特定應用程序。 在共享項目中,我們有一個interface及其實現

public interface Provider
{
...
}

@Bean
public class ProviderImpl implements Provider
{
...
}

在某些應用程序中我們需要更改默認實現,因此我們定義另一個Bean

@Bean
@Primary
public class ApplicationProviderImpl implements Provider
{
...
}

我想消除使用@Primary注釋每個特定於應用程序的實現的需要,因此其他開發人員可以盡可能地為他們的 bean 實現提供故障安全。

@Primary旁邊是否還有其他注釋決定使用哪個 bean 實現? 限定符可能會有所幫助,但在我看來會使它更容易出錯。

感謝@XtremeBaumer 的評論,我得到了一個很好的解決方案:

// in shared project
@Bean
@ConditionalOnMissingBean(Provider.class)
public class ProviderImpl implements Provider
{
...
}

這基本上導致與@Primary相反。

暫無
暫無

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

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