property和constructor-arg的使用

来源:互联网 发布:dreamweaver淘宝首页 编辑:程序博客网 时间:2024/05/21 10:13
(标注依稀)由于好久没去看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" class="com.spring.test.man.Man">   <constructor-arg value="zzy" 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" class="com.spring.test.man.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方法是不能带参数的。 


1 0