我正在研究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候选人 这种依赖。依赖注释:{}
我做错了什么以及如何解决?
答案 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;
}