中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

詳解Spring 兩種注入的方式(Set和構造)實例

發布時間:2020-09-22 07:27:11 來源:腳本之家 閱讀:204 作者:passport_daizi 欄目:編程語言

依賴注入是指對象之間關系的控制權由應用代碼中轉到外部容器。Spring框架主要提供了Set注入和構造注入兩種依賴注入方式。

1:Set注入指的就是在接受注入的類中定義一個要被注入的類型的一個set方法,并在參數中定義需要注入的元素。Set注入式一種裝配Bean屬性的直接方法,但Set注入的一個缺點就是它假設了所有的可變屬性都可以通過set方法訪問到,無法清晰地表示哪些屬性是必須的,哪些屬性是可選的。

2:構造注入是在接收注入的類中定義一個構造方法,并在構造方法中定義需要注入的參數。構造注入方式的優勢是通過構造方法來強制依賴關系。

下面介紹一下兩種方式的用法:

一:在Myeclipse中(筆者使用的是Myeclipse10版本)新建一個項目(Java project或者web project都可)

二:右鍵項目 - MyEclipse - Add Spring Capabilities(添加Spring支持),選擇3.0版本并添加引用核心類庫,點擊下一步。

三:選擇新創建一個spring bean 配置文件放到項目src目錄下。

四:點擊下一步,指定hibernate 配置頁,直接默認,點擊完成即可。

五:新建類 HelloWorld.Java

package com.xiami.spring; 
 
public class HelloWorld { 
 
  private String str; 
 
  /** 
   * 默認構造方法 
   */ 
  public HelloWorld() { 
  } 
 
  /** 
   * 用來進行構造注入的構造方法 
   * 
   * @param str 
   */ 
  public HelloWorld(String str) { 
    this.str = str; 
  } 
 
  /** 
   * 用來進行Set注入的方法 
   * @param str 
   */ 
  public void setStr(String str) { 
    this.str = str; 
  } 
 
  /** 
   * 輸出字符串的方法 
   */ 
  public void sayHello() { 
    System.out.println(str); 
  } 
} 

六:新建測試類Test.java

package com.xiami.spring; 
 
import org.springframework.beans.factory.BeanFactory; 
import org.springframework.beans.factory.xml.XmlBeanFactory; 
import org.springframework.core.io.ClassPathResource; 
 
public class Test { 
 
  /** 
   * @param args 
   */ 
  public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    //載入spring配置文件 
    BeanFactory bFactory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml")); 
    HelloWorld helloWorld = (HelloWorld) bFactory.getBean("helloService"); 
    helloWorld.sayHello(); 
  } 
 
} 

七:打開applicationContext.xml文件,進行添加bean配置

以下是兩種方式添加bean:

1:采用Set注入方式的Bean類的配置

右擊applicationContext.xml的編輯界面 - Spring - new bean 打開Bean向導窗口,填寫Bean Id(自定義命名和Test.java中getBean("???")對應。Bean class 選擇要注入的HelloWorld類。點擊Properties屬性選項卡,給該bean新建一個屬性。

八:在屬性向導窗口填寫 Name 對應HelloWorld.java中的屬性名稱,Spring Type 選擇value,type選擇String,Value 隨便填值。finish 既可。

九:保存applicationContext.xml, 添加bean后,配置文件多了紅色標記的部分,讀者可以運行Test.java。測試一下。發現hello world字符串已經注入到了str變量上。

<?xml version="1.0" encoding="UTF-8"?> 
<beans 
  xmlns="http://www.springframework.org/schema/beans" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xmlns:p="http://www.springframework.org/schema/p" 
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 
 
   
  <!-- 使用Set方式注入 --> 
  <!--  
  <span ><bean id="helloService" class="com.xiami.spring.HelloWorld" 
    abstract="false" lazy-init="default" autowire="default"> 
    <property name="str"> 
      <value type="java.lang.String">hello world</value> 
    </property> 
  </bean></span> 
   --> 
    
   <!-- 使用構造方法方式注入  
   <bean id="helloService" class="com.xiami.spring.HelloWorld" 
    abstract="false" lazy-init="default" autowire="default"> 
    <constructor-arg> 
      <value type="java.lang.String">構造方法注入方式</value> 
    </constructor-arg> 
   </bean> 
   --> 
    
   </beans> 

2:采用構造注入方式的Bean類的配置

在以上Set方式的Bean Wizard(Bean 向導)窗口,不選擇Properties選項卡,變為Constructor Args選項卡。并Add 新增一個構造參數。Index和Java Class 不用填寫。

十:在增加構造方式bean的時候,之前第一個得先注釋或者刪除,不允許有多個id相同的bean。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

景泰县| 武功县| 仪征市| 通化县| 祁连县| 阜新| 维西| 图片| 横山县| 合水县| 景宁| 米易县| 新绛县| 榆中县| 德保县| 衢州市| 奉节县| 调兵山市| 都匀市| 交口县| 田林县| 华池县| 公主岭市| 南京市| 桃园县| 呼图壁县| 资阳市| 阿荣旗| 彩票| 祁东县| 调兵山市| 乌海市| 昌吉市| 禹州市| 海盐县| 克拉玛依市| 宝丰县| 突泉县| 民权县| 邯郸市| 青岛市|