gpt4 book ai didi

java - NoSuchBeanDefinitionException : No qualifying bean of type 'java.util.List'

转载 作者:行者123 更新时间:2023-12-02 05:06:59 29 4
gpt4 key购买 nike

我目前正在尝试在 Scala 中创建一个 Spring Shell 应用程序。它在 IntelliJ 中工作,但在创建 jar 时不起作用。

我有一个可用的 Java 概念证明,它也成功创建了一个正在运行的 jar。

但是,我的 Scala 版本失败并出现以下几个问题:

Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'parameterValidationExceptionResultHandler': Unsatisfied dependency expressed through field 'parameterResolvers'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'java.util.List<org.springframework.shell.ParameterResolver>' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

我尝试了几个最小的示例,移动类(同一包)和不同的 Spring 注释(例如两者的 @SpringBootApplication)。

Java版本:

@SpringBootApplication
public class DemoApplication {

public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}

@ShellComponent
public class MyCommands {

@ShellMethod("Add two integers together.")
public int add(int a, int b) {
return a + b;
}
}

Scala 版本:

@EnableAutoConfiguration
@ComponentScan
class DemoApplication

object Scark extends App {
SpringApplication.run(classOf[DemoApplication], args:_*)
}

@ShellComponent class MyCommands {
@ShellMethod("Add two integers together.") def add(a: Int, b: Int): Int = a + b
}

我希望也能够从 Scala 版本成功构建一个 jar。

编辑:我已经上传了最小的示例: https://github.com/Zethson/Scala-Spring-Shell-Example/tree/feature/minimal_scala_issues_SO

最佳答案

  1. 如果您首先使用组件扫描,那么您将组件(Bean)放置在哪个路径并不重要,它会在当前包中检查它,然后再检查其子包。如果您的组件放置在不同的路径中,则将路径包含在 @ComponentScan("Path")

  2. 还要确保在 Spring Boot 的 java 中的 application.properties 中应用 DEBUG 模式后检查您的组件是否被扫描,如果没有,请尝试使用 @Component 位于组件上方,无论它在哪里,因为 @SpringBootApplication 在启动时会扫描相同的组件。

如果我回答错误,请告诉我您的回答并进一步详细说明。快乐编码:)

关于java - NoSuchBeanDefinitionException : No qualifying bean of type 'java.util.List<org.springframework.shell.ParameterResolver>' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56344562/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com