Spring框架和覆盖默认bean

时间:2012-02-22 16:25:23

标签: java spring

我们有一个构建于spring之上的框架,我们希望devs能够覆盖我们的默认bean。所以在我们的“自定义主题”的情况下,(我希望我们没有定制的主题)我们有一个接口,我们自动装入主题bean。

我们如何才能让用户能够实现相同的接口,并且我们将该bean自动装入我们的themer类而不是默认的。让我们说接口是调用NLSER而我们的默认实现是NLSERConcrete,最终用户/开发人员如何注入CustomerNLSER呢?

1 个答案:

答案 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选择它,它将在自动装配过程中首选。