第一种方法:根据索引赋值,索引都是以0开头的:
<constructor-arg index="0" value="刘晓刚" /><constructor-arg index="1" value="3500" />
<constructor-arg index="2" ref="dept"/>
<constructor-arg index="3" value="男" />
第二种方法是根据所属类型传值
这种方法基本上不怎么适用,因为一个类里可以有好几个相同基本类型的变量,很容易就混淆值传给哪一个参数了所以做好不要使用这种方法:
<constructor-arg type="java.lang.String" value="刘晓刚"<constructor-arg type="java.lang.Double" value="3500" />
<constructor-arg type="java.lang.String" value="男" />
第三种方法:根据参数的名字传值:(推荐用法)
在这几种方法里我感觉这种方法是最实用的,他是根据名字来传值的,所以基本上只要名字对了,这个值就可以获取到
<constructor-arg name="name" value="刘晓刚" /><constructor-arg name="salary" value="3500" />
<constructor-arg name="dept" ref="dept"/>
<constructor-arg name="sex" value="男" />
第四种方法:直接传值
直接给参数赋值,这种方法也是根据顺序排的,所以一旦调换位置的话,就会出现bug,这种方法已经很原始了
<constructor-arg value="刘晓刚" /><constructor-arg value="3500" />
<constructor-arg ref="dept"/>
<constructor-arg value="男" />
为了简化setter方法,之前通过<property>进行注入,p命名使用属性,<bean id="" class="" p:属性名="普通值" p:属性名-ref="引用值">。不过这种方法在企业级开发中用的比较少。
我们重点关注xml配置
对比不使用p命名空间的配置方法