我想问一下Spring Constructor Injection。所以在课堂上,我有两个参数数量不同的构造函数。
public class MyClassHello() {
public MyClassHello(String A) {
// do sth
}
public MyClassHello(String A, int B){
// do sth
}
}
如果我尝试像这样注入来访问第一个构造函数,Spring 将无法工作,因为存在歧义。
<bean id="injectQuestion" class="MyClassHello">
<constructor-arg index="0" value="A String"/>
</bean>
调试代码是这样的:
Unsatisfied dependency expressed through constructor argument with index 1 of type [java.lang.String]: Ambiguous constructor argument types.
我认为这意味着,Spring 需要知道 index 1 参数是否存在?
这与我们有两个具有相同数量参数的构造函数的通常情况不同。像这样,我可以设置类型以便在注入时进行区分。
就我而言,是否有强制 Spring 选择第一个构造函数?
非常感谢!!