引起:NoSuchBeanDefinitionException:没有 xxx 类型的合格 bean 预期至少 1 个 bean 有资格作为自动装配候选者

Posted

技术标签:

【中文标题】引起:NoSuchBeanDefinitionException:没有 xxx 类型的合格 bean 预期至少 1 个 bean 有资格作为自动装配候选者【英文标题】:Caused by: NoSuchBeanDefinitionException: No qualifying bean of type xxx expected at least 1 bean which qualifies as autowire candidate 【发布时间】:2017-10-18 21:14:39 【问题描述】:

我有以下代码:

package far.botshop.backend.controller;

/**
 */
import java.util.logging.Logger;

import far.botshop.backend.storage.StorageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

@Controller
public class FileUploadController 

    private final StorageService storageService;

    @Autowired
    public FileUploadController(StorageService storageService) 
        this.storageService = storageService;
    

并创建了以下类:

package far.botshop.backend.storage;

import org.springframework.boot.context.properties.ConfigurationProperties;

@ConfigurationProperties("storage")
public class StorageProperties 
    /**
     * Folder location for storing files
     */
    private String location = "upload-dir";

    public String getLocation() 
        return location;
    

    public void setLocation(String location) 
        this.location = location;
    


我相信应该很容易找到 StorageProperties,但由于某种原因,我收到了这个错误:

UnsatisfiedDependencyException:创建带有名称的 bean 时出错 文件中定义的“fileSystemStorageService” [/home/x/workspace/botshop-backend-java/target/classes/far/botshop/backend/storage/FileSystemStorageService.class]: 通过构造函数参数 0 表示的不满足的依赖关系; 嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException: 否 符合条件的 bean 类型 'far.botshop.backend.storage.StorageProperties' 可用:预计在 至少 1 个 bean 有资格作为自动装配候选者。

有什么想法吗?

【问题讨论】:

【参考方案1】:

你正在尝试

@Autowired
    public FileUploadController(StorageService storageService) 
        this.storageService = storageService;
    

但您尚未将 StorageService 定义为 Bean。

因此,您应该在 StorageService 类上添加 @Component 注释或等效项。

【讨论】:

【参考方案2】:

在 StorageProperties 类上添加 @Component 注解。

【讨论】:

@ConfigurationProperties 应与@EnableConfigurationProperties 一起使用

以上是关于引起:NoSuchBeanDefinitionException:没有 xxx 类型的合格 bean 预期至少 1 个 bean 有资格作为自动装配候选者的主要内容,如果未能解决你的问题,请参考以下文章

查询如何引起gc

杂牌设备网络接入引起交换机引起端口翻转的故障

csharp 可能会引起问题的类的继承问题,父类后来增加的方法可能会引起子类的函数重载错误

两则dhcp设置引起的故障

大开测试:性能-如何解决由于设置引起的运行失败问题(连载22)

查找由智能指针引起的内存泄漏