java - 在成功注入的spring bean上,

  显示原文与译文双语对照的内容
0 0

我正在尝试将属性文件与 spring 一起使用。 文件注入工作正常,我可以访问我的bean 。 例如这里代码


 @Autowired
 private Properties properties;

给了我这个错误: No qualifying bean of type [java.util.Properties] is defined: expected single matching bean but found 2: csvHeaderProperties,systemProperties

使用资源注入属性时,没有错误,一切都正常:


@Component
public Class MyClass {

 @Resource(name="csvHeaderProperties")
 private Properties properties;
}

但是,这个代码给了我一个 NPE:


@Component
public class DynCSVService {

 @Autowired
 private DynCSVDictionnary headerDico;

 public void processFile() {
 System.out.println(headerDico);
 }
}

两个文件都位于同一个包中。 这个代码有什么问题?

时间: 原作者:

0 0

spring 应如何推断要插入的内容?

如果有两个或者多个可能匹配的匹配项,则必须命名。

原作者:
0 0

你应该使用 @Named 注释

下面是一个例子


@Named("userDAO")
public class EfaUserDAOImpl

把它注入你需要的地方


@Inject
private @Named("userDAO")
EfaUserDAO userDAO; 

0 0

我发现错误:它在另一个文件中,我没有注入 DynCSVService,我使用默认的构造函数。

原作者:
...