【发布时间】:2013-07-10 19:39:06
【问题描述】:
我想将一个字符串自动连接到构造函数。
我在 spring 配置 xml 中有这个:
<bean id="helper" class="test.Helper">
<constructor-arg index="3" type="java.lang.String" value="http://test.com" />
</bean>
Helper.java
@Component
public class Helper {
private final ClientFactory clientFactory;
private final ModelManager modelManager;
private final SecurityService securityService;
private final String url;
@Autowired
public Helper(ClientFactory clientFactory, ModelManager modelManager,
SecurityService securityService, String url) {
this.clientFactory = clientFactory;
this.modelManager = modelManager;
this.securityService = securityService;
this.url = url;
}
}
我收到错误:
org.springframework.beans.factory.NoSuchBeanDefinitionException:没有定义类型 [java.lang.String] 的唯一 bean:预期的单个匹配 bean 但找到 19:
感谢任何帮助。谢谢!
【问题讨论】:
-
这里有一些冲突。您的
Helper类是@Component,但您也为它声明了bean。你最终会在你的上下文中得到两个Helper类的实例。 -
我是弹簧菜鸟。那么如何只为 Helper 注入 url?其他参数也是组件。我尝试使用
。即使这样也没有用!我应该使用@Qualifier在构造函数中?"test"</value></constructor-arg>
标签: java spring annotations autowired