Spring重载构造函数注入

这是代码:

public class Triangle { private String color; private int height; public Triangle(String color,int height){ this.color = color; this.height = height; } public Triangle(int height ,String color){ this.color = color; this.height = height; } public void draw() { System.out.println("Triangle is drawn , + "color:"+color+" ,height:"+height); } } 

Spring配置文件是:

      

是否有任何特定的规则来确定Spring将调用哪个构造函数?

这里,第一个参数将与每个方法的第一个参数匹配,然后匹配参数。

我建议下面的解决方案,以帮助消除歧义

如果你想调用你的第一个构造函数使用

     

如果你想调用你的第二个构造函数

     

这样就解决了歧义

编辑: –

请在此处详细了解此问题。

我不相信。 请注意,您可以键入参数,例如:

     

这将消除这种情况下的混乱。

基于Spring 3.1.0的测试,将使用第二个构造函数。 我不知道为什么,文档没有给出任何确定的答案。

Bitbucket代码要测试,运行Main类,它将输出String FIRST或SECOND,具体取决于将使用哪个构造函数来创建Triangle对象。