国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

spring 三種注入方式

2019-11-08 03:12:32
字體:
供稿:網(wǎng)友

SPRing中依賴注入有三種注入方式:

一、構(gòu)造器注入;

二、設(shè)值注入(setter方式注入);

三、Feild方式注入(注解方式注入)。

 

一、構(gòu)造器注入

     構(gòu)造器注入顧名思義就是在程序組件中實現(xiàn)構(gòu)造器,構(gòu)造器可以是一個也可以是多個。廢話不多說,直接上代碼。

 

java代碼  收藏代碼package cn.glzaction.service.impl;    import java.util.List;    import cn.glzaction.service.interfaces.PersonDaoIF;  import cn.glzaction.service.interfaces.PersonServiceIF;    public class PersonServiceBean implements PersonServiceIF{    //自定義類      private PersonDaoIF personDaoBean;  //String類型      private String name;  //集合類型        private List list;        //構(gòu)造器         public PersonServiceBean(PersonDaoBean personDaoBean,String name,List list){          this.personDaoBean = personDaoBean;          this.name = name;          this.list = list;      }  //方法,用于顯示      public void display(){          personDaoBean.add();          System.out.println(name);          System.out.println(list);      }  }  

 

 

上面的代碼中構(gòu)造器要注入三個參數(shù),同時這三個參數(shù)也是三種不同的類型,自定義類、String類型,集合類型,其中自定義類PersonDaoBean 具體的實現(xiàn)我們這里就不累述了,因為這不是重點。下面我們再來看一下在Spring的配置文件中如何來配置。

 

xml代碼  收藏代碼<bean id="personDao" class="cn.glzaction.service.impl.PersonDaoBean"></bean >    <!--構(gòu)造器方式注入-->  <bean id="personService" class="cn.glzaction.service.impl.PersonServiceBean">      <constructor-arg index="0" type="cn.glzaction.service.impl.PersonDaoBean" ref="personDao"/>      <constructor-arg index="1" type="java.lang.String" value="glzaction"/>      <constructor-arg index="2" type="java.util.List">          <list>              <value>list1</value>              <value>list2</value>              <value>list3</value>          </list>      </constructor-arg>  </bean>   

 

      java代碼如何實現(xiàn)構(gòu)造器我想大家一定都很清楚,否則的話就有點講不過去了,呵呵,所以這里我也就不加以說明了,主要說一下上面的xml配置。id為“personDao”的bean是PersonServiceBean的私有屬性,它的注入是采用無參構(gòu)造器的注入方式注入的,這也不詳細說明。主要說一下id為“personService”類的構(gòu)造器注入。<coustructor-arg>是構(gòu)造器標簽元素,通過設(shè)定它的屬性可以往構(gòu)造器傳遞參數(shù),index屬性值表示要設(shè)定的參數(shù)在構(gòu)造器形參中的索引順序,例如上面的配置,list是第三個參數(shù),所以它對應(yīng)的索引為2,index是可選屬性,所謂可選并不是說在任何情況下都可以不使用,要視具體情況而定,type為參數(shù)的類型,這個也是可選參數(shù)。還有兩個很重要的屬性就是ref和value,如果注入的是bean,就要使用ref,ref的值就是對應(yīng)的bean。如果注入的是基本類型或者string類型就用value,直接將對應(yīng)的值填入即可。

 

二、設(shè)值注入(setter方式注入)

設(shè)值注入就是通過setXxxx方法將bean注入到組件中,自定義類如下

 

Java代碼  收藏代碼package cn.glzaction.service.impl;    import cn.glzaction.service.interfaces.PersonDaoIF;  import java.util.*;    public class PersonDaoBean implements PersonDaoIF {        private String name;            private Integer id;            private List list;            private Map map;            public void setName(String name) {          this.name = name;      }      public void setId(Integer id) {          this.id = id;      }      public void setList(List list) {          this.list = list;      }      public void setMap(Map map) {          this.map = map;      }        @Override      public void add() {          // TODO Auto-generated method stub          System.out.println(map);          System.out.println(list);          System.out.println(id);          System.out.println(name);      }  }  

 

 

采用設(shè)置注入只要有setter方法即可,但是有時由于編程習(xí)慣也會講getter方法引進,但是要清楚:設(shè)值注入與getter方法無關(guān)。這里還有一點需要注意,那就是能使用基本類型,如果非要使用基本類型的話就要使用其對應(yīng)的包裝類型,如上面使用的是Integer而不是int。Spring的xml配置如下:

 

Xml代碼  收藏代碼<bean id="personDao" class="cn.glzaction.service.impl.PersonDaoBean">      <property name="name" type="java.lang.String" value="glzaction"/>      <property name="id" type="java.lang.Integer" value="1"/>      <property name="list" type="java.util.List">          <list>              <value>list1</value>              <value>list2</value>              <value>list3</value>          </list>      </property>      <property name="map" type="java.util.Map">          <map>              <entry key="key1" value="value1"></entry>              <entry key="key2" value="value2"></entry>          </map>      </property>  </bean>  

 設(shè)值注入采用的是<property>標簽元素,其中的name屬性對應(yīng)的是要注入的變量名,type屬性值對應(yīng)的該變量的類型,可以是自定義類或者包裝類型。value屬性對應(yīng)的是相應(yīng)的值,還有一個ref屬性,該屬性值對應(yīng)的是bean。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 都昌县| 永胜县| 湖南省| 禹城市| 西昌市| 凌源市| 咸丰县| 尼玛县| 芮城县| 萝北县| 建德市| 南华县| 瓮安县| 韩城市| 河池市| 嵊州市| 高淳县| 吴旗县| 社旗县| 南陵县| 沙田区| 清丰县| 汉阴县| 商河县| 大方县| 奇台县| 报价| 松桃| 临夏县| 台东县| 军事| 沾益县| 同仁县| 红安县| 长岛县| 屯门区| 武功县| 扶绥县| 凯里市| 合川市| 西安市|