依賴注入之針對不同類型變量的幾種注入方式

 控制反轉(Inversion of Control)和依賴注入(Dependency Injection)講的都是一個概念,只不過是站在了不同的角度,所謂的依賴注入:

  依賴注入(DI)是指在運行期,由外部容器動態地將依賴對象注入到組件中。當spring容器啟動后,spring容器初始化,創建并管理bean對象,以及銷毀它。所以我們只需從容器直接獲取Bean對象就行,而不用編寫一句代碼來創建bean對象。這種現象就稱作控制反轉(Ioc),即應用本身不負責依賴對象的創建及維護,依賴對象的創建及維護是由外部容器負責的。這樣控制權就由應用轉移到了外部容器,控制權的轉移就是所謂反轉。

  下面介紹各種類型屬性的注入方式:

  新建實體類Student:

復制代碼
public class Student {//基本數據類型的變量private String name;//對象類型的變量,Address類代碼(只有一個屬性 private String addr()  setter() getter())private Address address;//數組類型的變量private String[] hobby;//list類型的變量private List<String> books;//Map類型的變量private Map<String,String> cards;//set類型的變量private Set<String> movies;//Properties類型的變量private Properties info;public void show(){System.out.println("name:"+name+"地址:"+address.getAddr());System.out.println("愛好有:");for(int i=0;i<hobby.length;i++){System.out.println(hobby[i]);}System.out.println("喜歡的書籍:"+books);System.out.println("擁有的銀行卡"+cards);System.out.println("喜歡的電影"+movies);System.out.println("身份信息:"+info);}
//set方法省略
}
復制代碼

配置文件beans.xml:

復制代碼
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="address" class="com.wang.entity.Address"><property name="addr" value="青島"></property></bean> <bean id="student" class="com.wang.entity.Student"><!--配置基本數據類型 --><property name="name" value="張三豐"></property><!--配置對象類型 --><property name="address" ref="address"></property><!--配置數組類型 --><property name="hobby" ><array><value>吃飯</value><value>睡覺</value><value>打豆豆</value></array></property><!--配置list類型 --><property name="books"><list><value>時光旅行者的妻子</value><value>白發魔女傳</value><value>誰的青春不迷茫</value></list></property><!--配置map類型 --><property name="cards"><map><entry key="農行卡" value="62284832128534"></entry><entry key="建行卡" value="62284867867984"></entry></map></property><!--配置set類型 --><property name="movies"><set><value>瘋狂動物城</value><value>葉問3</value><value>功夫熊貓</value></set></property>
<!--配置properties類型-->
<property name="info"><props><prop key="學號">20124280</prop><prop key="班級">三年二班</prop><prop key="性別">不詳</prop></props></property></bean> </beans>
復制代碼

測試代碼:

復制代碼
@Testpublic void test1(){ApplicationContext context=new ClassPathXmlApplicationContext("beans.xml");Student s=(Student)context.getBean(Student.class);s.show();}
復制代碼

打印結果:

name:張三豐地址:青島
愛好有:
吃飯
睡覺
打豆豆
喜歡的書籍:[時光旅行者的妻子, 白發魔女傳, 誰的青春不迷茫]
擁有的銀行卡{農行卡=62284832128534, 建行卡=62284867867984}
喜歡的電影[瘋狂動物城, 葉問3, 功夫熊貓]
身份信息:{學號=20124280, 性別=不詳, 班級=三年二班}

轉載于:https://www.cnblogs.com/hoobey/p/6013155.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/285690.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/285690.shtml
英文地址,請注明出處:http://en.pswp.cn/news/285690.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【本周六活動】.NET Day in China

點擊藍字關注我們編輯&#xff1a;Alan Wang排版&#xff1a;Rani Sun活動介紹去年11月&#xff0c;.NET 6 的發布&#xff0c;為我們帶來了 .NET 多平臺應用 UI&#xff08;.NET MAUI&#xff09;。就在前不久&#xff0c;.NET MAUI 已正式發布。未來&#xff0c;作為 .NET 7 …

【PhotoScan精品教程】任務一:新建工程、導入照片、設置坐標系、導入控制點(POS)、自由空三

《無人機航空攝影測量精品教程》合集目錄(Pix4d、CC、EPS、PhotoScan、Inpho) 【PhotoScan精品教程】任務一:新建工程、導入照片、設置坐標系、導入控制點(POS)、自由空三 【PhotoScan精品教程】任務二:刺像控點,平差,質量報告精度檢查,像控點POS權重調配 【PhotoScan…

[轉]Angular 單元測試講解

Angular_單元測試 測試分類 按開發階段劃分按是否運行劃分按是否查看源代碼劃分其他ATDD,TDD,BDD,DDD ATDDTDDBDDDDDAngular單元測試 Karma的介紹jasmine介紹單元測試的好處使用jasmine和karma創建一個Angular項目Karma配置Test.ts文件測試體驗測試Form測試服務service常用斷言…

windows執行python文件提示SyntaxError: Non-ASCII character ‘\xe9‘ in file 1.py on line 7, but no encoding d

1、問題 windows環境下執行python文件&#xff0c;提示錯誤如下 SyntaxError: Non-ASCII character \xe9 in file 1.py on line 7, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details 2、解決辦法 py文件頭部加上 #codingutf-8

按鍵精靈如何調用Excel及按鍵精靈寫入Excel數據的方法教程---入門自動操作表格...

首先來建立一個新的Excel文檔&#xff0c;在桌面上點擊右鍵&#xff0c;選擇【新建】-【Excel工作表】&#xff0c;命名為【新手學員】。 現在這個新Excel文檔是空白的&#xff0c;我們接下來會通過按鍵精靈的腳本來打開并寫入一些數據。打開按鍵精靈軟件&#xff0c;點擊【新建…

第九十五節,移動流體布局和響應式布局總結

移動流體布局和響應式布局總結 寬度與高度 區塊寬度一般用max-width 最大寬度和百分比&#xff0c;來定義寬度&#xff0c;因為要實現自動縮放 高度如果要自適應&#xff0c;就不需要定義高度&#xff0c;或者定義最小高度 注意&#xff1a;橫向的盡量用百分比&#xff0c;如邊…

Maui的學習之路 -- 開篇

Maui的學習之路 -- 開篇想了很久我決定發一個Maui介紹做為開篇&#xff0c;雖然這是老生常談的話題&#xff0c;但是不能沒有這樣的探討&#xff08;請容我水一篇&#xff09;。什么是.NET Maui.NET Maui是微軟的一款基于.Net多平臺應用 UI (.NET MAUI)的跨平臺框架&#xff0c…

【PhotoScan精品教程】任務二:刺像控點,平差,質量報告精度檢查,像控點POS權重調配

《無人機航空攝影測量精品教程》合集目錄(Pix4d、CC、EPS、PhotoScan、Inpho) 【PhotoScan精品教程】任務一:新建工程、導入照片、設置坐標系、導入控制點(POS)、自由空三 【PhotoScan精品教程】任務二:刺像控點,平差,質量報告精度檢查,像控點POS權重調配 【PhotoScan…

互聯網架構的演變,看了好多這個講的確實清楚!

從過去的 OA、CRM、ERP 等單機即可滿足要求的系統到現代互聯網時代各大公司的分布式、微服務平臺&#xff0c;互聯網架構正在經歷著巨大的變革&#xff0c;技術也在不斷的更新迭代。 圖片來自 Pexels這也意味著眾多軟件開發者們的壓力和挑戰正在不斷的加大&#xff0c;這種新技…

【Inpho精品教程】Inpho簡介、安裝教程(附Inpho8安裝包下載)

《無人機航空攝影測量精品教程》合集目錄(Pix4d、CC、EPS、PhotoScan、Inpho) Inpho UASMaster是Trimble公司旗下的一款攝影測量處理軟件。本文講解Inpho簡介、安裝教程(附Inpho8安裝包下載)。 文章目錄 1. Inpho簡介2. Inpho安裝教程3. Inpho8下載地址1. Inpho簡介 1.1 主…

MAUI使用Masa blazor組件庫

上一篇(點擊閱讀)我們實現了UI在Web端(Blazor Server/Wasm)和客戶端(Windows/macOS/Android/iOS)共享&#xff0c;這篇我加上 Masa Blazor[2]組件庫的引用&#xff0c;并把前幾個月寫的時間戳轉換[3]工具加上。1. 前置知識關于Masa Blazor請點擊Masa Blazor官網[4]了解&#xf…

常用的NSLOG日志打印格式

2019獨角獸企業重金招聘Python工程師標準>>> 常用的NSLOG日志打印格式 以下是常用的LOG打印&#xff0c;如果有特殊&#xff0c;請我 &#xff0c;這邊會不定期更新。 % 對象 %d, %i 整數 %u 無符整形 %f 浮點/雙字 %x, %X 二進制整數 %…

Android studio提示Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.

1、 問題 在Android studio里面運行java的lib庫&#xff0c;但是錯誤提示如下 Build file F:\sourceZip\app\build.gradle line: 2An exception occurred applying plugin request [id: com.android.application] > Failed to apply plugin com.android.internal.applicat…

[轉]淺析DDD(領域驅動設計)

最近在做一些微服務相關的設計&#xff0c;內容包括服務的劃分&#xff0c;Restful API的設計等。其中比較棘手的就是Service的職責劃分&#xff1a;如何抽象具有統一業務范疇的Model&#xff0c;使其模塊化&#xff0c;又如何高度提煉并組合多模塊&#xff0c;使得業務可獨立服…

【PhotoScan精品教程】任務三:生成密集點云、生成網格、生成DEM、生成DOM

《無人機航空攝影測量精品教程》合集目錄(Pix4d、CC、EPS、PhotoScan、Inpho) 【PhotoScan精品教程】任務一:新建工程、導入照片、設置坐標系、導入控制點(POS)、自由空三 【PhotoScan精品教程】任務二:刺像控點,平差,質量報告精度檢查,像控點POS權重調配 【PhotoScan…

windows環境實現批量加密文件,并創建加密文件同名(不帶后綴)的文件夾,然后把加密文件和圖片和文本放入這個文件夾。

1、 需求 我想把資源文件先加密成壓縮文件&#xff0c;然后同時創建每個加密壓縮文件同名的文件夾&#xff0c;同時需要把這個加密文件拷貝到這個同名的文件夾&#xff0c;然后還需要把一個圖片和一個文本文檔同時放進這個文件夾&#xff0c;然后在不加密壓縮這個文件夾&#…

.NET7之MiniAPI(特別篇) :Preview5優化了JWT驗證(上)

在.NET7的Preview5中&#xff0c;優化了asp.net core中的JWT驗證&#xff0c;不用像以前繁瑣了&#xff0c;更重要的是帶來了一組生成Token的工具&#xff0c;可以讓開發人員或測試人員不需登錄獲取Token&#xff0c;而達到測試的目的。創建項目現在來看一下怎么使用&#xff0…

iOS - UTI

一、UTI概念 1、什么是UTI Uniform Type Identifier&#xff0c;是字符串&#xff0c;格式標識符。 根據UTI&#xff0c;可得到相應的其他類型的格式標識符。比如public.jpeg對應于&#xff1a; A four-character file type code (an OSType) of JPEGA filename extension of .…

【Inpho精品教程】任務一:Inpho預處理準備(Pix4d生成未畸變圖像、Pix4d生成相機參數文件)

《無人機航空攝影測量精品教程》合集目錄(Pix4d、CC、EPS、PhotoScan、Inpho) Inpho軟對于初學者來說,可能不像pix4d、PhotoScan等那么得心應手,處理過程也稍微有些復雜。Inpho處理的是POS分離的照片,在新建工程之前,需要獲取相機參數、未畸變圖像等,而這些前期的工作一…

學習MongoDB(三) Add an Arbiter to Replica Set 集群中加入仲裁節點

Add an Arbiter to Replica Set 在集群中加入仲裁節點&#xff0c;當集群中主節點掛掉后負責選出新的主節點&#xff0c;仲裁節點也是一個mongo實力&#xff0c;但是它不存儲數據。 1、仲裁節點消耗很小的資源&#xff0c;而且不需要專用的服務器。 2、不能把仲裁節點安裝到集…