激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

香港云服务器
服務器之家 - 編程語言 - Java教程 - 詳解Spring 兩種注入的方式(Set和構造)實例

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

2020-08-19 11:43passport_daizi Java教程

本篇文章主要介紹了Spring 兩種注入的方式(Set和構造)實例,Spring框架主要提供了Set注入和構造注入兩種依賴注入方式。有興趣的可以了解一下。

依賴注入是指對象之間關系的控制權由應用代碼中轉到外部容器。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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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變量上。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?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 style="color:#ff0000;"><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。

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

原文鏈接:http://blog.csdn.net/kalision/article/details/41011491

延伸 · 閱讀

精彩推薦
372
主站蜘蛛池模板: 精品国产精品久久 | 九九视频精品在线 | 一区二区三区四区在线观看视频 | 免费在线观看成年人视频 | 福利在线播放 | 亚洲第五色综合网 | 国产91中文字幕 | 国产一级桃视频播放 | 久久亚洲成人网 | 国产一级αv片免费观看 | 日本中文字幕网址 | 国语自产免费精品视频在 | 日韩视频一区二区三区在线观看 | 亚洲精品7777xxxx青睐 | 韩国一大片a毛片 | 午夜精品成人一区二区 | 欧美一级电影网 | 成人午夜激情视频 | 成人wxx视频免费 | 视频在线91| 欧美成人精品欧美一级 | 精品国产一区二区三区蜜殿 | 91精品国产一区二区三区四区在线 | 久久精品成人免费国产片桃视频 | jizzjizz中国人少妇中文 | 日本成人午夜视频 | 成人免费av在线播放 | 久久国产一二区 | 亚洲精品91 | 亚洲精品无码不卡在线播放he | 亚洲国产高清视频 | 美女污污视频在线观看 | 国内精品久久久久影院不卡 | 久久久久av69精品 | 女教师~淫辱の动漫在线 | 色屁屁xxxxⅹ在线视频 | 午夜国产福利 | 久久久www成人免费精品 | 女人叉开腿让男人桶 | 欧美一级色片 | 中文字幕h |