spring构造函数注入
在这个例子中我们将通过构造函数注入设置bean属性。先看一下下面的User bean类。
?
?
?
?
User bean类有三个属性,即:name, age和country。这三个属性都是通过setter注入来进行设置的。User bean类的toString()方法被重载来展示User对象。
?
bean.xml用来配置spring bean。下面的代码说明设置属性的值直至setter注入。
?
?
?
?
在bean元素中的constructor-arg元素用来设置属性值直至构造函数注入。当User bean类中有一个构造函数,这个代码将会正常工作。当有另外一个有相同参数数量的构造函数,将会产生错误,参考一下代码:
?
?
?
?
现在哪个构造函数将被调用?调用第一个int和String参数的构造函数是正确的,但是事实上将调用第二个构造函数。虽然我们知道第一个参数是int类型,第二个参数是String类型,但是Spring将他们都解释为Spring参数。为了避免这种情况,需要指定constructor-arg元素的type属性。现在bean配置属性如下,第一个构造函数将被调用。
?
?
?
?
我们将User bean类的构造函数改为如下的情况:
?
?
?
现在,现在正确的构造函数将被调用。
?