我们有一个构建于spring之上的框架,我们希望devs能够覆盖我们的默认bean。所以在我们的“自定义主题”的情况下,(我希望我们没有定制的主题)我们有一个接口,我们自动装入主题bean。
我们如何才能让用户能够实现相同的接口,并且我们将该bean自动装入我们的themer类而不是默认的。让我们说接口是调用NLSER而我们的默认实现是NLSERConcrete,最终用户/开发人员如何注入CustomerNLSER呢?
答案 0 :(得分:3)
在XML中使用@Primary
注释或primary="true"
bean属性。这是你的默认bean:
@Service
public class NLSERConcrete implements NLSER {//...
//...in different class
@Autowired
private NLSER nlser;
现在,如果开发者添加:
@Service
@Primary
public class CustomerNLSER implements NLSER {//...
到CLASSPATH和Spring选择它,它将在自动装配过程中首选。