日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring框架学习(二)依赖注入

發布時間:2025/3/21 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring框架学习(二)依赖注入 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?spring框架為我們提供了三種注入方式,分別是set注入,構造方法注入,接口注入。接口注入不作要求,下面介紹前兩種方式。


1set注入

? 采用屬性的set方法進行初始化,就成為set注入。

? ? 1)給普通字符類型賦值。

[java]?view plaincopy print?
  • public?class?User{??
  • ???privateString?username;??
  • ???
  • ???publicString?getUsername()?{??
  • ???????returnusername;??
  • ???}??
  • ???publicvoid?setUsername(String?username)?{??
  • ??????this.username=?username;??
  • ???}??
  • }??

  • ? ?我們只需要提供屬性的set方法,然后去屬性文件中去配置好讓框架能夠找到applicationContext.xml文件beans標簽。標簽beans中添加bean標簽,?指定idclass值,id值不做要求,class值為對象所在的完整路徑。bean標簽再添加property 標簽,要求,name值與User類中對應的屬性名稱一致。value值就是我們要給User類中的username屬性賦的值。

    [html]?view plaincopy print?
  • <bean?id="userAction"class="com.lsz.spring.action.User"?>??
  • <span?style="white-space:pre">??</span><property?name="username"?value="admin"></property>??
  • </bean>??

  • ? ?2)給對象賦值

    ?同樣提供對象的set方法

    [java]?view plaincopy print?
  • public?class?User{??
  • ?????private?UserService?userservice;??
  • ?????public?UserServicegetUserservice()?{??
  • ??????????returnuser;??
  • ?????}??
  • ?????public?void?setUserservice(UserService?userservice){??
  • ?????????this.userservice=?userservice;??
  • ?????}??
  • }??

  • ? ?配置文件中要增加UserServicebean標簽聲明及User對象對UserService引用。

    [html]?view plaincopy print?
  • <!--對象的聲明-->??
  • <bean?id="userService"?class="com.lsz.spring.service.UserService"></bean>??
  • ???
  • <bean?id="userAction"class="com.lsz.spring.action.User"?>??
  • ???<property?name="userservice"?ref="userService"></property>??
  • </bean>??
  • ? 這樣配置,框架就會將UserService對象注入到User類中。

    ?

    ? 3)給list集合賦值

    ?同樣提供set方法

    [java]?view plaincopy print?
  • public?class?User{??
  • ????privateList<String>?username;??
  • ????publicList<String>?getUsername()?{??
  • ????????returnusername;??
  • ????}??
  • ????publicvoid?setUsername(List<String>?username)?{??
  • ????????this.username=?username;??
  • ????}??
  • }??

  • [html]?view plaincopy print?
  • <bean?id="userAction"class="com.lsz.spring.action.User"?>??
  • ?????<propertynamepropertyname="username">??
  • ???????????<list>??
  • ???????????????<value>zhang,san</value>??
  • ???????????????<value>lisi</value>??
  • ???????????????<value>wangwu</value>??????????????????????????????????
  • ???????????????</list>??
  • ????</property>??
  • </bean>??


  • ?

    ? 4)給屬性文件中的字段賦值

    [java]?view plaincopy print?
  • public?class?User{??
  • ????privateProperties?props?;??
  • ????publicProperties?getProps()?{??
  • ????????returnprops;??
  • ????}??
  • ????publicvoid?setProps(Properties?props)?{??
  • ????????this.props=?props;??
  • ????}??
  • }??

  • [html]?view plaincopy print?
  • <bean>??
  • ????<propertynamepropertyname="props">??
  • ????????<props>??
  • ???????????<propkeypropkey="url">jdbc:oracle:thin:@localhost:orl</prop>??
  • ???????????<propkeypropkey="driverName">oracle.jdbc.driver.OracleDriver</prop>??
  • ???????????<propkeypropkey="username">scott</prop>??
  • ???????????<propkeypropkey="password">tiger</prop>??
  • ????????</props>??
  • ????</property>??
  • </bean>??


  • <prop>標簽中的key值是.properties屬性文件中的名稱


    注意:

    ? 無論給什么賦值,配置文件中<property>標簽的name屬性值一定是和對象中名稱一致。

    ?

    ?

    2構造方法注入

    ? ?1)構造方法一個參數

    ?

    [java]?view plaincopy print?
  • public?class?User{??
  • ????privateString?usercode;??
  • ????publicUser(String?usercode)?{??
  • ????????this.usercode=usercode;??
  • ????}??
  • }??

  • [html]?view plaincopy print?
  • <bean?id="userAction"class="com.lsz.spring.action.User">??????????????????????????
  • ????<constructor-argvalueconstructor-argvalue="admin"></constructor-arg>??????????????????????????
  • </bean>??


  • ? ?2)構造函數有兩個參數時

    ? 當參數為非字符串類型時,在配置文件中需要制定類型,如果不指定類型一律按照字符串類型賦值。

    ? 當參數類型不一致時,框架是按照字符串的類型進行查找的,因此需要在配置文件中制定是參數的位置

    ?

    [html]?view plaincopy print?
  • <constructor-argvalueconstructor-argvalue="admin"index="0"></constructor-arg>??????????????????
  • <constructor-argvalueconstructor-argvalue="23"?type="int"index="1"></constructor-arg>??
  • ???

  • ? 這樣制定,就是構造函數中,第一個參數為string類型,第二個參數為int類型


    from:?http://blog.csdn.net/lishuangzhe7047/article/details/20740835

    總結

    以上是生活随笔為你收集整理的spring框架学习(二)依赖注入的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。