首頁 Java java教程 spring框架學習(二)依賴注入

spring框架學習(二)依賴注入

Dec 29, 2016 pm 01:10 PM

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

1,set注入
採用屬性的set方法進行初始化,就成為set注入。
1)給普通字元類型賦值。

public class User{
   privateString username;
 
   publicString getUsername() {
       returnusername;
   }
   publicvoid setUsername(String username) {
      this.username= username;
   }
}
登入後複製

我們只需要提供屬性的set方法,然後去屬性檔案中去設定好讓框架能夠找到applicationContext.xml檔案的beans標籤。標籤beans中加入bean標籤,
指定id,class值,id值不做要求,class值為物件所在的完整路徑。 bean標籤再加入property
標籤,要求,name值與User類別中對應的屬性名稱一致。 value值就是我們要給User類別中的username屬性賦的值。

<bean id="userAction"class="com.lsz.spring.action.User" >
	<property name="username" value="admin"></property>
</bean>
登入後複製

2)給物件賦值
同樣提供物件的set方法

public class User{
     private UserService userservice;
     public UserServicegetUserservice() {
          returnuser;
     }
     public void setUserservice(UserService userservice){
         this.userservice= userservice;
     }
}
登入後複製

設定檔中要增加UserService的bean標籤聲明及User物件對UserService引用。

<!--对象的声明-->
<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方法

public class User{
    privateList<String> username;
    publicList<String> getUsername() {
        returnusername;
    }
    publicvoid setUsername(List<String> username) {
        this.username= username;
    }
}
登入後複製
<bean id="userAction"class="com.lsz.spring.action.User" >
     <propertyname="username">
           <list>
               <value>zhang,san</value>
               <value>lisi</value>
               <value>wangwu</value>                                
               </list>
    </property>
</bean>
登入後複製

4)給屬性檔中的欄位賦值

public class User{
    privateProperties props ;
    publicProperties getProps() {
        returnprops;
    }
    publicvoid setProps(Properties props) {
        this.props= props;
    }
}
登入後複製
<bean>
    <propertyname="props">
        <props>
           <propkey="url">jdbc:oracle:thin:@localhost:orl</prop>
           <propkey="driverName">oracle.jdbc.driver.OracleDriver</prop>
           <propkey="username">scott</prop>
           <propkey="password">tiger</prop>
        </props>
    </property>
</bean>
登入後複製

標籤中的key值是.properties屬性檔中的名稱

標籤中的key值是.properties屬性檔中的名稱



給什麼賦值,設定檔中標籤的name屬性值一定是跟物件中名稱一致。

2建構方法注入
1)構造方法一個參數

public class User{
    privateString usercode;
    publicUser(String usercode) {
        this.usercode=usercode;
    }
}
登入後複製
<bean id="userAction"class="com.lsz.spring.action.User">                        
    <constructor-argvalue="admin"></constructor-arg>                        
</bean>
登入後複製

2)建構子有兩個參數時

當參數為非字串型別時,在設定檔中需要製定型別,如果不指定型別一律依照字串型別賦值。

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

<constructor-argvalue="admin"index="0"></constructor-arg>                
<constructor-argvalue="23" type="int"index="1"></constructor-arg>
登入後複製

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


 以上就是spring框架學習(二)依賴注入的內容,更多相關內容請關注PHP中文網(www.php.cn)!

🎜🎜🎜
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
利用Spring Boot以及Spring AI建構生成式人工智慧應用 利用Spring Boot以及Spring AI建構生成式人工智慧應用 Apr 28, 2024 am 11:46 AM

Spring+AI作為行業領導者,透過其強大、靈活的API和先進的功能,為各種行業提供了領先性的解決方案。在本專題中,我們將深入探討Spring+AI在各領域的應用範例,每個案例都將展示Spring+AI如何滿足特定需求,實現目標,並將這些LESSONSLEARNED擴展到更廣泛的應用。希望這個專題能對你有所啟發,更深入地理解和利用Spring+AI的無限可能。 Spring框架在軟體開發領域已經有超過20年的歷史,自SpringBoot1.0版本發布以來已有10年。現在,無人會質疑,Spring

修改spring gateway中的RequestBody 修改spring gateway中的RequestBody Feb 09, 2024 pm 07:15 PM

我想在將requestbody路由到給定的uri之前修改它。基於我正在使用的文檔org.springframework.cloud.gateway.filter.factory.rewrite.modifyrequestbodygatewayfilterfactory修改正文。啟動我的伺服器時,伺服器無法啟動並出現以下錯誤原因:元素[spring.cloud.gateway.routes[0].filters[0].modifyrequestbody.class]未綁定。 \n\n操作:\

在Phalcon框架中使用依賴注入(Dependency Injection)的方法 在Phalcon框架中使用依賴注入(Dependency Injection)的方法 Jul 30, 2023 pm 09:03 PM

在Phalcon框架中使用依賴注入(DependencyInjection)的方法引言:在現代的軟體開發中,依賴注入(DependencyInjection)是一種常見的設計模式,旨在提高程式碼的可維護性和可測試性。而Phalcon框架作為一個快速、低耗的PHP框架,也支援使用依賴注入來管理和組織應用程式的依賴關係。本文將向您介紹如何在Phalcon框架中

JAX-RS 與 Spring MVC:一場 RESTful 巨頭的較量 JAX-RS 與 Spring MVC:一場 RESTful 巨頭的較量 Feb 29, 2024 pm 05:16 PM

簡介RESTfulapi已經成為現代WEB應用程式中不可或缺的一部分。它們提供了一種標準化的方法來創建和使用Web服務,從而提高可移植性、可擴展性和易用性。在Java生態系統中,JAX-RS和springmvc是建構RESTfulAPI的兩個最受歡迎的框架。本文將深入探討這兩種框架,並比較它們的特性、優點和劣勢,幫助您做出明智的決定。 JAX-RS:JAX-RSAPIJAX-RS(JavaAPIforRESTfulWebServices)是由JavaEE開發的標準JAX-RSAPI,用於開發REST

深入了解Spring框架的架構與工作原理 深入了解Spring框架的架構與工作原理 Jan 24, 2024 am 09:41 AM

深入剖析Spring框架的架構與工作原理引言:Spring是Java生態系統中最受歡迎的開源框架之一,它不僅提供了一套強大的容器管理和依賴注入功能,還提供了許多其他功能,如事務管理、AOP、資料存取等。本文將深入剖析Spring框架的架構與工作原理,並透過具體的程式碼範例來解釋相關概念。一、Spring框架的核心概念1.1IoC(控制反轉)Spring的核心

優化程序日誌記錄:log4j日誌等級設定技巧分享 優化程序日誌記錄:log4j日誌等級設定技巧分享 Feb 20, 2024 pm 02:27 PM

最佳化程序日誌記錄:log4j日誌等級設定技巧分享摘要:程式的日誌記錄對於問題排查、效能調優和系統監控都起著關鍵作用。本文將分享log4j日誌等級設定的技巧,包括如何設定不同等級的日誌以及如何透過程式碼範例來說明設定過程。導語:在軟體開發中,日誌記錄是一項非常重要的工作。透過記錄程式在運行過程中的關鍵訊息,可以幫助開發者找出問題發生的原因,進行效能最佳化和系統監控

Java反射機制在Spring框架的應用? Java反射機制在Spring框架的應用? Apr 15, 2024 pm 02:03 PM

Java反射機制在Spring框架中廣泛用於以下方面:依賴注入:透過反射實例化bean和注入相依性。類型轉換:將請求參數轉換為方法參數類型。持久化框架整合:映射實體類別和資料庫表。 AspectJ支援:攔截方法呼叫和增強程式碼行為。動態代理:建立代理物件以增強原始物件的行為。

Oracle資料庫連線方式詳解 Oracle資料庫連線方式詳解 Mar 08, 2024 am 08:45 AM

Oracle資料庫連線方式詳解在應用程式開發中,資料庫連線是一個非常重要的環節,它承載著應用程式與資料庫之間的資料互動。 Oracle資料庫是一款功能強大、效能穩定的關聯式資料庫管理系統,在實際開發中,我們需要熟練不同的連接方式來與Oracle資料庫互動。本文將詳細介紹Oracle資料庫的幾種常見連接方式,並提供相應的程式碼範例,幫助讀者更好地理解和應用

See all articles