No qualifying bean of type [java.lang.String] is defined: expected single matching bean but found 2
错误信息:
No qualifying bean of type [java.lang.String] is defined: expected single matching bean but found 2: appclientApplication,slfclientApplication
具体场景:
service
@Resource
private String appclientApplicationName;
@Resource
private String slfclientApplicationName;
xml
<bean id="appclientApplicationName " class="java.lang.String">
<constructor-arg value="${Application}"/>
</bean>
<!-- 图片样式名 -->
<bean id="slfclientApplicationName " class="java.lang.String">
<constructor-arg value="${Application}"/>
</bean>
结果在项目启动时报错:
No qualifying bean of type [java.lang.String] is defined: expected single matching bean but found 2: appclientApplication,slfclientApplication
原因:
因为我在使用@Resource注解时,并没有指定name属性,所以spring通过反射机制使用byName自动注入策略,将配置文件的value值注入了,而不是id值,这就导致spring找到了两个同样的value值,无法选择注入哪一个,最终报错。
解决方案通过指定name属性:
@Resource(name="appclientApplicationName")
private String appclientApplication;
@Resource(name="slfclientApplicationName")
private String slfclientApplication;
还没有评论,来说两句吧...