1. 程式人生 > >property和constructor-arg的

property和constructor-arg的

由於好久沒去看spring的東西,以前的知道差不多都忘記了,今天重新學習一下如何使用,以後在慢慢的一個一個知識點的深究。我發現學過的東西還是要記錄下來,否則以後又要重新找資料。純屬個人學習筆記。

一:依賴注入的方式
  constructor-arg:通過建構函式注入。
  property:通過setxx方法注入。

二:constructor-arg的簡單使用
  java程式碼
  Java程式碼  收藏程式碼
  1. publicclass Man {  
  2. private String name ;  
  3. privateint age;  
  4. private List hobby;  
  5. private Map  friends;  
  6. private Set  set;  
  7. privateboolean ifMarried;  
  8. public Man() {  
  9. }  
  10.    public Man(String name, 
    int age,List hobby,Map friends,Set    set,boolean ifMarried){  
  11.     this.name = name;  
  12.     this.age = age;  
  13.     this.hobby = hobby;  
  14.     this.friends = friends;  
  15.     this.set = set;  
  16.     this.ifMarried = ifMarried;  
  17.    }  
  18.    public String getInfo(){  
  19.     String info = "姓名:"+this.name+"\n年齡:"+this.age+
    "\n愛好:"+this.hobby+"\n朋友:"+this.friends+"\n婚否:"+this.ifMarried+"\n其他的:"+this.set;  
  20.        return info;  
  21.    }  

  xml配置檔案
Java程式碼  收藏程式碼
  1. <bean id="man"class="com.spring.test.man.Man">  
  2.    <constructor-arg value="zzy" index="0" >  
  3.    </constructor-arg>  
  4.    <constructor-arg value="10" index=
    "1">  
  5.    </constructor-arg>  
  6.    <constructor-arg>  
  7.      <list>  
  8.         <value>movie</value>  
  9.         <value>music</value>  
  10.      </list>  
  11.    </constructor-arg>  
  12.    <constructor-arg>  
  13.       <set>  
  14.          <value>Lady is GaGa</value>  
  15.          <value>GaGa is Lady</value>  
  16.       </set>  
  17.    </constructor-arg>  
  18.    <constructor-arg>  
  19.        <map>  
  20.           <entry key="liuhua" value="man"></entry>  
  21.           <entry key="xujinglei" value="female"></entry>  
  22.        </map>  
  23.    </constructor-arg>  
  24.    <constructor-arg index="5" value="0">  
  25.    </constructor-arg>  
  26. </bean>  


最後一個引數ifMarried是一個boolean型別的引數,在配置的時候可以是true/false或者0/1;

二:property的簡單使用
  java程式碼:

   Java程式碼  收藏程式碼
  1. publicclass Doctor {  
  2.     private String name;  
  3.     private String sex;  
  4.     public String getName() {  
  5.         return name;  
  6.     }  
  7.     publicvoid setName(String name) {  
  8.         this.name = name;  
  9.     }  
  10.     public String getSex() {  
  11.         return sex;  
  12.     }  
  13.     publicvoid setSex(String sex) {  
  14.         this.sex = sex;  
  15.     }  
  16.     publicvoid init(){  
  17.         System.out.println("88888888888");  
  18.     }  
  19.     publicvoid init(String name,String sex){  
  20.         this.name = name;  
  21.         this.sex = sex;  
  22.     }  
  23. }  

xml配置檔案:
Java程式碼  收藏程式碼
  1. <bean id="doctor"class="com.spring.test.man.Doctor" init-method="init">  
  2.  <property name="name" value="doctor"></property>  
  3.  <property name="sex" value="i don't know"></property>  
  4. lt;/bean>  
   

在這裡我配置了一個init-method="init"表示在容易例項化這個doctor的時候,呼叫一個Doctor類的init方法,本來還以為可以通過這個init方法來注入要注入的資訊,但是嘗試過後才知道這個init方法是不能帶引數的。