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对象。