java - NoSuchBeanDefinitionException : No qualifying bean of type for inner class

标签 java spring spring-mvc spring-boot autowired

我尝试将第三方 bean 添加到我的应用程序中:

@Configuration
@ComponentScan(...)
public class ApplicationConfiguration {

    @Bean(name = "mqSocket")
    public ZMQ.Socket startServer() {
        try (ZMQ.Context ctx = ZMQ.context(1);
             ZMQ.Socket publisher = ctx.socket(ZMQ.PUB)) {
            publisher.bind("tcp://*:5556");
            return publisher;
        }
    }
}

我尝试像这样 Autowiring :

@RestController
public class MyRestController {    

    @Autowired
    private ZMQ.Socket mqSocket;

但它打印以下内容:

java.lang.IllegalStateException: Failed to load ApplicationContext
...
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'myRestController': Unsatisfied dependency expressed through field 'mqSocket'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.zeromq.ZMQ$Socket' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
...
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.zeromq.ZMQ$Socket' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
...

最佳答案

您应该添加 @Import annotation在您的应用程序类中。

例如:

@Import(ApplicationConfiguration.class)
public class Application {

} 

注:参见@M.Prokhorov 评论,ZMQ.Socket 由 try-with-resource 语句关闭

关于java - NoSuchBeanDefinitionException : No qualifying bean of type for inner class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43205347/

相关文章:

java - 如何正确使用可以有条件地返回值或抛出异常的Java 8 Optional?

java - 什么时候验证连接池中的连接?

spring - 执行 spring 事务时出错

java - 自动实例化的bean参数?

java - Spring MVC 在一个请求中返回多个对象

java - 无法在 Spring 返回带有异常详细信息的 ResponseEntity

java - 实例化抽象父类(super class)的子类

c# - 如何确定给定文件是类文件?

javascript - 使用 JavaScript 获取 jar 文件中配置的环境变量

java - 在没有注释的情况下强制对 Spring MVC Controller 的 JSON 主体中的字符串值进行全局验证