码迷,mamicode.com
首页 > 编程语言 > 详细

Spring通过构造方法注入的四种方式

时间:2017-12-17 15:04:50      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:mem   www.   index   lang   body   type   class   强制   tostring   

通过构造方法注入,就相当于给构造方法的参数传值

  set注入的缺点是无法清晰表达哪些属性是必须的,哪些是可选

    的,构造注入的优势是通过构造强制依赖关系,不可能实例化不

    完全的或无法使用的bean。

MemberBean定义四个变量,

   private String name;

private Double salary;

private Dept dept;

private String sex;

加上构造方法和toString方法:方便测试

Dept:

   private String dname;

private String deptno;

使用set方法注入

第一种方法:根据索引赋值,索引都是以0开头的:

 <bean           

id="memberBean" class="www.csdn.spring01.constructor.MemberBean">

         <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="www.csdn.spring01.constructor.Dept" ref="dept"/>

         <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="男" />

    </bean>

<bean id="dept" class="www.csdn.spring01.constructor.Dept" >

 

  <property name="dname" value="北航"/>

  <property name="deptno" value="00001"/>

</bean>S

Spring通过构造方法注入的四种方式

标签:mem   www.   index   lang   body   type   class   强制   tostring   

原文地址:http://www.cnblogs.com/shamo89/p/8051953.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!