构造函数注入、p名称空间注入

第一种方法:根据索引赋值,索引都是以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="引用值">。不过这种方法在企业级开发中用的比较少。

如图所示,在实现p命名空间之前,要做一点事情。前面p必选,后面p可以改成别的名字。

我们重点关注xml配置


对比不使用p命名空间的配置方法


猜你喜欢

转载自blog.csdn.net/saafdgvsdg/article/details/80370278