自动装配接口失败

时间:2015-03-09 04:01:20

标签: java spring spring-mvc

我在我的应用程序中使用Spring MVC和Spring Integration。

VendorService是我的接口,其实现由Spring Integration负责。

我通过自动装配将VendorService的实例注入我的控制器。

这是我的控制器......

@Autowired(required=true)
@Qualifier("vendorService")
VendorService vendorService;

我收到以下错误,

  

找不到[com.sample.service.VendorService]类型的限定bean用于依赖:预期至少有1个bean符合此依赖关系的autowire候选者。依赖注释:{@ org.springframework.beans.factory.annotation.Autowired(required = true),@ org.springframework.beans.factory.annotation.Qualifier(value = vendorService)}

4 个答案:

答案 0 :(得分:1)

我认为您没有在接口的实现类(VenderService)中应用@Service或@Repository Annotations。

试试这个: -

@Repository
pulblic class VenderServiceImpl implements VenderService{
     // Do your job here.
}

我希望它能奏效。

答案 1 :(得分:1)

Spring找不到实现VenderService接口的类。通过将@Service或@Component注释添加到实现VenderService的类来帮助他。

答案 2 :(得分:0)

错误表明Spring无法找到VendorService的实现来满足您的自动装配请求。它只能使用实现指定接口的类来执行此操作,并且它们必须在上下文文件中定义,或者通过包扫描(通过使用注释)找到。

答案 3 :(得分:0)

这是关于spring如何在应用程序上下文中加载bean的好文章。您可以使用

手动将其定义为bean

1)<bean id="" class=""> in application context.

或者如果您想要注释您的calss,那么您必须使用

添加组件的自动扫描

2)<context:component-scan base-package="XX.XX" />.

当spring无法在应用程序上下文中找到bean id时,会发生此错误。

http://www.mkyong.com/spring/spring-auto-scanning-components/