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



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

最佳答案

您需要将值传递给参数,然后只有您才能访问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");

10-08 20:18