![](/img/trans.png)
[英]Spring expected at least 1 bean which qualifies as autowire candidate for this dependency
[英]Spring @Resource Expected at least 1 bean which qualifies as autowire candidate for this dependency
我正在尝试运行网络应用,但遇到了一些问题。 基本上,我有一个控制器和一个进程,它们都共享一个队列。
控制器管理上载到服务器的文件,并将它们放入队列中。 另一方面,该过程将文件放入队列中,并将其用于其他用途。
我已经将队列定义为LinkedBlockingQueue和它们两个的注解@Resource,但是当我运行应用程序时,出现以下异常:
Error creating bean with name 'csvQueueConsumerBean': Injection of resource
dependencies failed; nested exception is
org.springframework.beans.factory.NoSuchBeanDefinitionException:
No qualifying bean of type [java.util.concurrent.LinkedBlockingQueue] found for
dependency: expected at least 1 bean which qualifies as autowire candidate for this
dependency.
这两个类别的代码如下:
@RestController
@RequestMapping("/upload")
public class FileUploadControllerW {
@Resource
protected LinkedBlockingQueue<QueueObject> csvQueue;
...
}
@Component
public class CsvQueueConsumerBean{
@Resource
protected LinkedBlockingQueue<QueueObject> csvQueue;
...
}
仅作记录,两个类都不在同一程序包中。
这样做的原因是因为Spring
背景不能接线Bean
叫
csvQueueConsumerBean
您将需要在Spring
配置文件中初始化其LinkedBlockingQueue
依赖关系,如下所示:
@Bean
public LinkedBlockingQueue<QueueObject> linkedBlockingQueue(){
LinkedBlockingQueue<QueueObject> blockingQueue = new LinkedBlockingQueue<QueueObject>();
// do what you need here...
return blockingQueue;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.