gpt4 book ai didi

java - 将参数传递给 Bean 时,没有找到类型为 [java.lang.String] 的符合条件的 bean 依赖项

转载 作者:搜寻专家 更新时间:2023-10-31 20:00:58 25 4
gpt4 key购买 nike

我正在研究 Spring 并尝试创建 bean 并将参数传递给它。我在 Spring 配置文件中的 bean 如下所示:

@Bean
@Scope("prototype")
public InputFile inputFile (String path)
{
InputFile inputFile = new InputFile();
inputFile.setPath(path);
return inputFile;
}

InputFile 类是:

public class InputFile {
String path = null;
public InputFile(String path) {
this.path = path;
}
public InputFile() {

}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
}

在主要方法中我有:

InputFile inputFile = (InputFile) ctx.getBean("inputFile", "C:\\");

C:\\ - 是我要传入的参数。

我运行应用程序并收到 root 异常:

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [java.lang.String] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}

我做错了什么以及如何解决?

最佳答案

您需要将一个值传递给您的参数,然后只有您可以访问该 bean。这就是异常中给出的消息。

在方法声明上方使用@Value 注解并向其传递一个值。

@Bean
@Scope("prototype")
@Value("\\path\\to\\the\\input\\file")
public InputFile inputFile (String path)
{
InputFile inputFile = new InputFile();
inputFile.setPath(path);
return inputFile;
}

此外,在访问此 bean 时,您需要使用以下代码访问它

InputFile inputFile = (InputFile) ctx.getBean("inputFile");

关于java - 将参数传递给 Bean 时,没有找到类型为 [java.lang.String] 的符合条件的 bean 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34450028/

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