当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《在将参数传递给Bean时,没有找到类型[java.lang.String]的限定bean用于依赖项》经验,为你挑选了1个好方法。

我正在研究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中]找到依赖性否类型的排位豆:预期至少1种豆,其有资格作为自动装配候选这种依赖性.依赖注释:{}

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



1> Vivek Singh..:

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

在方法声明上方使用@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");


如果要在运行时创建对象.这是不可能的.由于Spring负责注入,因此您需要在创建对象时传递依赖项
推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有