我正在研究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");