Spring 构造函数注入

来源:互联网 发布:共享单车软件开发 编辑:程序博客网 时间:2024/05/22 04:46

Spring 构造函数注入

 

在这个例子中我们将通过构造函数注入设置bean属性。先看一下下面的User bean类。

 

 

User bean类有三个属性,即:name, age和country。这三个属性都是通过setter注入来进行设置的。User bean类的toString()方法被重载来展示User对象。

 

bean.xml用来配置spring bean。下面的代码说明设置属性的值直至setter注入。

 

 

在bean元素中的constructor-arg元素用来设置属性值直至构造函数注入。当User bean类中有一个构造函数,这个代码将会正常工作。当有另外一个有相同参数数量的构造函数,将会产生错误,参考一下代码:

 

 

bean的配置文件:

 

现在哪个构造函数将被调用?调用第一个int和String参数的构造函数是正确的,但是事实上将调用第二个构造函数。虽然我们知道第一个参数是int类型,第二个参数是String类型,但是Spring将他们都解释为Spring参数。为了避免这种情况,需要指定constructor-arg元素的type属性。现在bean配置属性如下,第一个构造函数将被调用。

 

 

我们将User bean类的构造函数改为如下的情况:

 

现在哪个构造函数将被调用那?调用第二个构造函数是正确的,但是实际情况是第一个构造函数被调用。这是因为当构造函数被调用的时候,在bean配置文件不会考虑参数出现的顺序。为了解决这个问题我们可以指定构造函数参数的索引数。

bean配置文件如下:

 

现在,现在正确的构造函数将被调用。

 

源程序:下载

源程序 + Lib:下载

原创粉丝点击