Spring @Resource预计至少有一个bean可以作为此依赖项的autowire候选者

时间:2016-01-09 16:47:00

标签: java spring resources

我试图运行网络应用,但我遇到了一些问题。基本上我有一个控制器和一个进程,他们都共享一个队列。

控制器管理上传到服务器的文件,并将它们放入队列中。另一方面,该进程获取队列中的文件并将其用于其他事项。

我已将队列定义为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;

...
}

仅供记录,两个类都不在同一个包中。

1 个答案:

答案 0 :(得分:0)

之所以这样,是因为--disable-web-security上下文无法连接Spring所谓的

Bean

您需要在csvQueueConsumerBean 配置文件中初始化其LinkedBlockingQueue依赖关系,如下所示:

Spring