读书人

property跟constructor-arg的使用

发布时间: 2012-11-05 09:35:12 作者: rapoo

property和constructor-arg的使用
由于好久没去看spring的东西,以前的知道差不多都忘记了,今天重新学习一下如何使用,以后在慢慢的一个一个知识点的深究。我发现学过的东西还是要记录下来,否则以后又要重新找资料。纯属个人学习笔记。

一:依赖注入的方式
constructor-arg:通过构造函数注入。
property:通过setxx方法注入。

二:constructor-arg的简单使用
java代码

    public class Man {private String name ;private int age;private List hobby;private Map  friends;private Set  set;private boolean ifMarried;public Man() {}    public Man(String name, int age,List hobby,Map friends,Set    set,boolean ifMarried){    this.name = name;    this.age = age;    this.hobby = hobby;    this.friends = friends;    this.set = set;    this.ifMarried = ifMarried;    }        public String getInfo(){        String info = "姓名:"+this.name+"\n年龄:"+this.age+"\n爱好:"+this.hobby+"\n朋友:"+this.friends+"\n婚否:"+this.ifMarried+"\n其他的:"+this.set;        return info;    }}   

xml配置文件
<bean id="man" index="0" >   </constructor-arg>      <constructor-arg value="10" index="1">   </constructor-arg>     <constructor-arg>     <list>        <value>movie</value>        <value>music</value>     </list>   </constructor-arg>      <constructor-arg>      <set>         <value>Lady is GaGa</value>         <value>GaGa is Lady</value>      </set>   </constructor-arg>   <constructor-arg>       <map>          <entry key="liuhua" value="man"></entry>          <entry key="xujinglei" value="female"></entry>       </map>   </constructor-arg>      <constructor-arg index="5" value="0">   </constructor-arg></bean>


最后一个参数ifMarried是一个boolean类型的参数,在配置的时候可以是true/false或者0/1;

二:property的简单使用
java代码:

public class Doctor {private String name;private String sex;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public void init(){System.out.println("88888888888");}public void init(String name,String sex){this.name = name;this.sex = sex;}}

xml配置文件:
  <bean id="doctor" init-method="init">  <property name="name" value="doctor"></property>  <property name="sex" value="i don't know"></property></bean>


在这里我配置了一个init-method="init"表示在容易实例化这个doctor的时候,调用一个Doctor类的init方法,本来还以为可以通过这个init方法来注入要注入的信息,但是尝试过后才知道这个init方法是不能带参数的。

读书人网 >编程

热点推荐