[英]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.