Java 带构造函数arg重载的Spring注入问题
我想问一下关于Spring构造函数注入的问题。 在这个类中,我有两个具有不同数量参数的构造函数Java 带构造函数arg重载的Spring注入问题,java,spring,code-injection,constructor-injection,spring-bean,Java,Spring,Code Injection,Constructor Injection,Spring Bean,我想问一下关于Spring构造函数注入的问题。 在这个类中,我有两个具有不同数量参数的构造函数 public class MyClassHello() { public MyClassHello(String A) { // do sth } public MyClassHello(String A, int B){ // do sth } } 如果我尝试这样注入以访问第一个构造函数,Spring将无法工作,因为存在歧义 <
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>
我想这意味着Spring需要知道index 1参数是否存在
这与通常的情况不同,我们有两个具有相同数量参数的构造函数。这样,我可以设置类型,以便在注射时进行区分
在我的例子中,有没有强制Spring选择第一个构造函数
非常感谢 您可以使用以下名称:
<bean id= "InjectQuestion" class = "MyClassHello">
<constructor-arg name = "A" value="A String"/>
</bean>
<bean id= "InjectQuestion" class = "MyClassHello">
<constructor-arg name = "A" value="A String"/>
<constructor-arg name = "B" value="42"/>
</bean>
请注意,您在声明类时使用的语法无效;而且在定义bean时,在class=。。。您应该使用类的完全限定名,例如packageName.subPackage.MyClassHello而不仅仅是MyClassHello虽然我发现您当前的设置会导致任何歧义,但请在构造函数定义中添加一个type属性以清除任何剩余的歧义。然后你应该有@kolossus,这不会有帮助,我已经尝试过了,但仍然是相同的结果。对于两个构造函数,第一个参数都是字符串。我想问题是注入如何知道第二个参数是否存在。谢谢。我要试一试。对不起,语法错误。
<bean id= "InjectQuestion" class = "MyClassHello">
<constructor-arg name = "A" value="A String"/>
</bean>
<bean id= "InjectQuestion" class = "MyClassHello">
<constructor-arg name = "A" value="A String"/>
<constructor-arg name = "B" value="42"/>
</bean>