![](/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.