spring4第3課-ioc控制反轉-詳解依賴注入的4種方式

1,屬性注入;

2,構造函數注入;(通過類型;通過索引;聯合使用)

3,工廠方法注入;(非靜態工廠,靜態工廠)

4,泛型依賴注入;(Spring4 整合 Hibernate4 的時候順帶學)

詳細解釋

1,屬性注入;

<?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"><!--定義2個bean:lisi--><bean id="lisi" class="com.java1234.service.Lisi"></bean><bean id="javaWork" class="com.java1234.service.JavaWork"><property name="tester" ref="lisi"></property></bean>
</beans>

? ?這里就是一種對象注入? <property name="tester" ref="lisi"></property>

? ?如果對象有name的屬性,對value的設置【張三】就是屬性注入,代碼如下:

<bean id="people2" class="com.java1234.entity.People"> <property name="id" value="1"></property><property name="name" value="張三"></property><property name="age" value="11"></property>
</bean>

2,構造函數注入;3種方式

(1:通過字段類型(type);2:通過字段順序(index);3:聯合使用(字段順序+字段類型))

<!-- 構造方法注入-字段類型-->
<bean id="people3" class="com.java1234.entity.People"><constructor-arg type="int" value="2"></constructor-arg><constructor-arg type="String" value="李四"></constructor-arg><constructor-arg type="int" value="22"></constructor-arg>
</bean>
<!-- 構造方法注入-字段順序0,1,2 -->
<bean id="people4" class="com.java1234.entity.People"><constructor-arg index="0" value="3"></constructor-arg><constructor-arg index="1" value="王五"></constructor-arg><constructor-arg index="2" value="55"></constructor-arg>
</bean>
<!-- 構造方法注入 ,字段順序+字段類型-->
<bean id="people5" class="com.java1234.entity.People"><constructor-arg index="0" type="int" value="4"></constructor-arg><constructor-arg index="1" type="String" value="招六"></constructor-arg><constructor-arg index="2" type="int" value="66"></constructor-arg>
</bean>

3,工廠方法注入;(非靜態工廠,靜態工廠)

3.1)非靜態工廠(factory-bean方式創建):

   <bean id="peopleFactory" class="com.java1234.factory.PeopleFactory"></bean>
   <bean id="people7" factory-bean="peopleFactory" factory-method="createPeople"></bean>

? ? ? <! -- 上面的peopleFactory是工廠bean,createPeople是工廠bean的方法-->

3.2)靜態工廠:( 所謂靜態,體現在由static修飾(類PeopleFactory2的)createPeople方法,又因為是static類型,可以直接使用類型(class="類的路徑XXXX")創建,可以不需要像非靜態工廠那樣還使用factory-bean)

<bean id="people8" class="com.java1234.factory.PeopleFactory2" factory-method="createPeople"></bean>

4,泛型依賴注入;(Spring4 的新功能 )

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

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

相關文章

使用Rust和并發實現一個高性能的彩色分形圖案渲染

分形與 Mandelbrot Mandelbrot 集 (Mandelbrot Set) 是復數平面上一個點的集合,以數學家 Benot Mandelbrot 的名字命名。它是最著名的分形之一。一個復數 c 是否屬于 Mandelbrot 集,取決于一個簡單的迭代過程: z n + 1 = z n 2 + c z_{n+1}=z_{n}^2+c zn+1?=zn2?+c 如果…

微信小程序的軟件測試用例編寫指南及示例--性能測試用例

以下是針對微信小程序的性能測試用例補充,結合代碼邏輯和實際使用場景,從加載性能、渲染性能、資源占用、交互流暢度等維度設計測試點,并標注對應的優化方向: 一、加載性能測試用例 測試項測試工具/方法測試步驟預期結果優化方向冷啟動加載耗時微信開發者工具「性能」面板…

行為型:觀察者模式

目錄 1、核心思想 2、實現方式 2.1 模式結構 2.2 實現案例 3、優缺點分析 4、適用場景 5、注意事項 1、核心思想 目的&#xff1a;針對被觀察對象與觀察者對象之間一對多的依賴關系建立起一種行為自動觸發機制&#xff0c;當被觀察對象狀態發生變化時主動對外發起廣播&…

t009-線上代駕管理系統

項目演示地址 摘 要 使用舊方法對線上代駕管理系統的信息進行系統化管理已經不再讓人們信賴了&#xff0c;把現在的網絡信息技術運用在線上代駕管理系統的管理上面可以解決許多信息管理上面的難題&#xff0c;比如處理數據時間很長&#xff0c;數據存在錯誤不能及時糾正等問題…

LVS-NAT 負載均衡群集

目錄 簡介 一、LVS 與群集技術基礎 1.1 群集技術概述 1.2 負載均衡群集的分層結構 1.3 負載均衡工作模式 二、LVS 虛擬服務器核心組件與配置 2.1 LVS 內核模塊與管理工具 2.2 負載調度算法解析 2.3 ipvsadm 管理工具實戰 三、NFS 共享存儲服務配置 3.1 NFS 服務基礎…

LLaMaFactory - 支持的模型和模板 常用命令

一、 環境準備 激活LLaMaFactory環境&#xff0c;進入LLaMaFactory目錄 cd LLaMA-Factoryconda activate llamafactory 下載模型 #模型下載 from modelscope import snapshot_download model_dir snapshot_download(Qwen/Qwen2.5-0.5B-Instruct) 二、啟動一個 Qwen3-0.6B…

EDW2025|數據治理的神話破除——從誤區到現實

在當今數據驅動的世界中&#xff0c;數據治理已成為企業成功的關鍵因素。然而&#xff0c;許多組織在實施數據治理時&#xff0c;常常被一些常見的誤區所困擾。本文將逐一破除這些誤區&#xff0c;揭示數據治理的真實面貌。 誤區一&#xff1a;你需要一個大的預算&#xff01;…

AIGC與影視制作:技術革命、產業重構與未來圖景

文章目錄 一、AIGC技術全景&#xff1a;從算法突破到產業賦能1. **技術底座&#xff1a;多模態大模型的進化路徑**2. **核心算法&#xff1a;從生成對抗網絡到擴散模型的迭代** 二、AIGC在影視制作全流程中的深度應用1. **劇本創作&#xff1a;從“靈感枯竭”到“創意井噴”**2…

ReactJS 中的 JSX工作原理

文章目錄 前言? 1. JSX 是什么&#xff1f;&#x1f527; 2. 編譯后的樣子&#xff08;核心機制&#xff09;&#x1f9f1; 3. React.createElement 做了什么&#xff1f;&#x1f9e0; 4. JSX 與組件的關系&#x1f504; 5. JSX 到真實 DOM 的過程&#x1f4d8; 6. JSX 與 Fr…

Spring Advisor增強規則實現原理介紹

Spring Advisor增強規則實現原理介紹 一、什么是 Advisor&#xff1f;1. Advisor 的定義與本質接口定義&#xff1a; 2. Advisor 的核心作用統一封裝切點與通知構建攔截器鏈的基礎實現增強邏輯的靈活組合 二. Sprin當中的實現邏輯1 Advisor 接口定義2 PointcutAdvisor 接口定義…

小程序32-簡易雙向數據綁定

在WXML中&#xff0c;普通屬性的綁定是單向的&#xff0c;例如:<input value"{{value}}" /> 如果希望用戶輸入數據的同時改變data中的數據&#xff0c;可以借助簡易雙向綁定機制。在對應屬性之前添加model:前綴即可: 例如<input model:value"{{value}…

Nginx網站服務:從入門到LNMP架構實戰

&#x1f3e1;作者主頁&#xff1a;點擊&#xff01; Nginx-從零開始的服務器之旅專欄&#xff1a;點擊&#xff01; &#x1f427;Linux高級管理防護和群集專欄&#xff1a;點擊&#xff01; ??創作時間&#xff1a;2025年5月30日14點22分 前言 說起Web服務器&#xff0c…

【maker-pdf 文檔文字識別(包含ocr),安裝使用完整教程】

安裝環境 conda create -n maker-pdf python3.12 conda activate marker-pdf pip install modelscope pip install marker-pdf -U下載模型 from modelscope import snapshot_downloadmodel_root "models" snapshot_download("Lixiang/marker-pdf", loca…

C# 類和繼承(所有類都派生自object類)

所有類都派生自object類 除了特殊的類object&#xff0c;所有的類都是派生類&#xff0c;即使它們沒有基類規格說明。類object是唯 一的非派生類&#xff0c;因為它是繼承層次結構的基礎。 沒有基類規格說明的類隱式地直接派生自類object。不加基類規格說明只是指定object為 基…

尚硅谷redis7 90-92 redis集群分片之集群擴容

90 redis集群分片之集群擴容 三主三從不夠用了&#xff0c;進行擴容變為4主4從 問題&#xff1a;1.新建兩個redis實例&#xff0c;怎么加入原有集群&#xff1f;2.原有的槽位分3段&#xff0c;又加進來一個槽位怎么算&#xff1f; 新建6387、6388兩個服務實例配置文件新建后啟…

尚硅谷-尚庭公寓部署文檔

文章目錄 整合版部署文檔部署架構圖1. 項目目錄結構增加注釋的 Dockerfile 配置(1) 后端服務1 Dockerfile (backend/service1/Dockerfile)(2) 后端服務2 Dockerfile (backend/service2/Dockerfile) Dockerfile 配置說明重要注意事項3. Nginx 配置(1) 主配置文件 (nginx/nginx.c…

Android Studio 介紹

如何關閉或徹底刪除一個工程 基于Android Studio的android入門——如何關閉或徹底刪除一個工程 搜索內容 Android Studio高效指南&#xff1a;快速查找技巧大揭秘 build命令&#xff1a;gradle app:assembleDebug 命令解析 1. 命令結構與作用 核心功能&#xff1a;該命令…

JAVA與C語言之間的差異(一)

一、代碼習慣以及主函數 JAVA中{在使用的時候不要換行 public static void main(String[] args) {int[] array {1, 2, 3};for(int i 0; i < array.length; i){System.out.println(array[i] " ");}} 其次&#xff0c;以main函數為主函數&#xff1a; public …

華為OD機試真題——開放日活動/取出盡量少的球(2025A卷:200分)Java/python/JavaScript/C++/C語言/GO六種最佳實現

2025 A卷 200分 題型 本文涵蓋詳細的問題分析、解題思路、代碼實現、代碼詳解、測試用例以及綜合分析; 并提供Java、python、JavaScript、C++、C語言、GO六種語言的最佳實現方式! 本文收錄于專欄:《2025華為OD真題目錄+全流程解析/備考攻略/經驗分享》 華為OD機試真題《開放…

我的3種AI寫作節奏搭配模型,適合不同類型寫作者

—不用內耗地高效寫完一篇內容&#xff0c;原來可以這樣搭配AI ?? 開場&#xff1a;為什么要“搭配節奏”寫作&#xff1f; 很多人以為用AI寫作&#xff0c;就是丟一句提示詞&#xff0c;然后“等它寫完”。 但你有沒有遇到這些情況&#xff1a; AI寫得很快&#xff0c;學境…