在将参数传递给Bean时,没有找到类型[java.lang.String]的限定bean用于依赖项

时间:2015-12-24 09:01:50

标签: java spring

我正在研究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异常:

  

引起:   org.springframework.beans.factory.NoSuchBeanDefinitionException:没有   为依赖项找到类型[java.lang.String]的限定bean:   预计至少有1个豆有资格成为autowire候选人   这种依赖。依赖注释:{}

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

1 个答案:

答案 0 :(得分:5)

您需要将值传递给参数,然后才能访问该bean。这是Exception中给出的消息。

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

$result = in_array($user_value,$array)

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

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