为什么在这种情况下没有相应的set方法?

时间:2013-08-01 16:03:45

标签: spring dependency-injection

我是Spring的新手,正在开发一个由Spring组成的项目。 它在xml文件中有这段代码

   <bean id="quotClient" class="com..at.client.QuoteClient" scope="singleton" />
   <bean id="streamClient" class="com.at.client.StreamClient" scope="singleton" />

在java类中,它有这段代码

@Autowired
@Qualifier("streamClient")
private StreamClient sclient;



@Autowired
@Qualifier("quotClient")
private QuoteClient quotesClient;


public void setQuotesClient(QuoteClient quotesClient) {
    this.quotesClient = quotesClient;
}

请让我知道为什么没有为StreamClient类设置名称的方法,但是它有相应的QuoteClient设置方法。

2 个答案:

答案 0 :(得分:0)

由于您正在使用注释驱动的bean自动装配,因此您不需要任何禁令设置器(这些是使用反射设置的)。 Spring DI框架不需要setQuotesClient来注入这两个bean实例。

PS:从春季版3.0开始,您可以开始使用@Inject代替@Autowired

Check: How does Spring @Autowired work

答案 1 :(得分:0)

我认为setter方法错误地写了。 删除该setter并测试该应用程序。它应该工作。