0
項目Base
豆:春:選擇默認
@Service
public class BeanDefault implements BeanBase {
}
public class App {
@Autowired
private BeanBase beanBase;
}
項目MyDerived
(Base
是在行家MyDerived
父,有許多其他衍生項目):
@Service
public class MyBean implements BeanBase {
}
而且我想類App
使用MyBean
而不會干擾其他項目(它們仍然使用BeanDefault
)。
我可以在這兩個項目中修改代碼Base
和MyDerived
(不能修改其他衍生項目的代碼),那麼該怎麼做:
- 應用程序使用
BeanDefault
當它是唯一合格的豆爲BeanBase
- 應用程序使用
MyBean
在我的項目
我發現,作品:
@Service
@Primary
public class MyBean implements BeanBase {
}
但我想知道,這是一個很好的做法嗎?
你使用'@ Primary'的方法很好,但是你會看到現在你總是得到一個'MyBean'的實例。要有選擇地獲得另一個實例,您可以給該bean一個名稱並使用'@ Qualifier'註釋,如此處所述 - http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#beans- autowired-annotation-qualifiers –
@BijuKunjummen「你會看到現在你總是得到一個MyBean的實例」 - 我認爲這隻發生在我的派生項目中......其他派生項目仍然使用BeanDefault ... – Sayakiss
啊! ,我明白,是的,你是對的,你現在的方法會適合你。 –