我试图运行网络应用,但我遇到了一些问题。基本上我有一个控制器和一个进程,他们都共享一个队列。
控制器管理上传到服务器的文件,并将它们放入队列中。另一方面,该进程获取队列中的文件并将其用于其他事项。
我已将队列定义为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;
...
}
仅供记录,两个类都不在同一个包中。
答案 0 :(得分:0)
之所以这样,是因为--disable-web-security
上下文无法连接Spring
所谓的
Bean
您需要在csvQueueConsumerBean
配置文件中初始化其LinkedBlockingQueue
依赖关系,如下所示:
Spring