从Spring 文档中,
构造函数参数解析匹配使用参数的类型进行。如果Bean定义的构造函数参数中不存在潜在的歧义,则在实例化Bean时,在Bean定义中定义构造函数参数的顺序就是将这些参数提供给适当的构造函数的顺序。
我找到以下答案,该答案解释了选择构造函数时的弹簧行为。
如果指定不带索引的构造函数-
arg,则将调用可以满足给定参数的最贪婪的构造函数(按类型匹配参数)。对于java.io.File,这是File(String
parent,String child)构造函数:您的String参数按类型匹配两者,因此算法使用该构造函数。
参考
从父级继承时,构造函数参数将合并(与合并属性集合相同)。在您的情况下,合并子bean构造函数参数后,将
<constructor-arg value="23" type="int"/><constructor-arg value="10" type="int"/><constructor-arg value="Ringing" />
对于模棱两可的方案,请使用索引或构造函数参数名称。



