Spring入門基礎(chǔ)之依賴注入
一、構(gòu)造器注入
在前幾節(jié)已經(jīng)做過了詳細(xì)的說明講解,我們先跳過
二、set注入
依賴注入
依賴: bean對象的創(chuàng)建以及管理都依賴于Spring IOC容器
注入: bean對象中的所有屬性,都有容器進(jìn)行注入
在前面我們已經(jīng)見識過了 普通類型注入和 bean注入的方式,那么對于復(fù)雜類型List、數(shù)組類型、Map、Set屬性等怎么進(jìn)行注入呢?
我們先提供一個包含各種類型的實體類
Student 類
package com.kuang.pojo;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
@Setter
@Getter
@ToString
public class Student {
private String name;
private Address address;
private String[] books;
private List<String> hobbies;
private Map<String,String> card;
private Set<String> games;
private String wife;
private Properties info;
}Student類中包含的 Address類
package com.kuang.pojo;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
public class Address {
private String address;
}(1)基本類型注入
<!-- 普通類型注入-->
<property name="name" value="張三"/>(2)引用類型(bean)注入
<bean name="address" class="com.kuang.pojo.Address"/>
<bean id="student" class="com.kuang.pojo.Student">
<!-- 引用類型(bean)注入-->
<property name="address" ref="address"/>
<bean/>(3)數(shù)組類型注入
<!-- 數(shù)組類型注入 -->
<property name="books">
<array>
<value>紅樓夢</value>
<value>水滸傳</value>
<value>西游記</value>
<value>三國演義</value>
</array>
</property>property 嵌套 array標(biāo)簽 ,array標(biāo)簽中又 通過 value標(biāo)簽設(shè)置 數(shù)組中的值
(4)List類型注入
<!--Lits 屬性注入-->
<property name="hobbies">
<list>
<value>打籃球</value>
<value>彈吉他</value>
<value>踢足球</value>
</list>
</property>property 嵌套 list標(biāo)簽 ,list標(biāo)簽中又 通過 value標(biāo)簽設(shè)置 list中的值
(5)null 空值注入
<!-- null注入-->
<property name="wife">
<null/>
</property>property 嵌套 null標(biāo)簽,給指定屬性設(shè)置為null
(6)Map 類型注入
<!-- Map注入-->
<property name="card">
<map>
<entry key="身份證" value="1111"/>
<entry key="飯卡" value="22222"/>
</map>
</property>property 嵌套 map標(biāo)簽 ,map標(biāo)簽中又 通過 entry標(biāo)簽設(shè)置 key、value中的值
(7)Set 類型注入
<!-- Set注入-->
<property name="games">
<set>
<value>塞爾達(dá)</value>
<value>馬里奧</value>
</set>
</property>property 嵌套 set標(biāo)簽 ,set標(biāo)簽中又 通過value標(biāo)簽設(shè)置set中的值
(8)Properties 類型注入
<!-- properties注入-->
<property name="info">
<props>
<prop key="url">111</prop>
<prop key="username">root</prop>
<prop key="password">22222</prop>
</props>
</property>property 嵌套 props標(biāo)簽 , props標(biāo)簽中又 通過prop標(biāo)簽設(shè)置值
查看注入之后的結(jié)果,正確拿到結(jié)果

三、其他方式注入
(1)導(dǎo)入約束
其他拓展的注入有p命名注入和c命名注入,但是不能直接使用都需要引入xml約束
p命名空間注入xml約束
xmlns:p="http://www.springframework.org/schema/p"
c命名空間xml約束
xmlns:c="http://www.springframework.org/schema/c"
p命名和c命名是對注入方式的一種格式化
- p命名對應(yīng)著 property 屬性注入
- c命名對應(yīng)著 construct-arg 構(gòu)造參數(shù)注入
(2)p命名注入
<bean name="address" class="com.kuang.pojo.Address"/>
<bean id="student"
class="com.kuang.pojo.Student"
p:name="張三"
p:address-ref="address"
/>(3)c命名注入
<bean name="address" class="com.kuang.pojo.Address"/>
<bean id="student"
class="com.kuang.pojo.Student"
c:name="張三"
c:address-ref="address"
/>到此這篇關(guān)于Spring入門基礎(chǔ)之依賴注入的文章就介紹到這了,更多相關(guān)Spring依賴注入內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot項目參數(shù)校驗方式(Validator)
本文介紹了如何在Spring Boot項目中使用`spring-boot-starter-validation`包和注解來實現(xiàn)請求參數(shù)校驗,主要介紹了校驗注解的使用方法、校驗失敗的異常捕獲以及`@Validated`的分組功能2025-02-02
java如何獲取request中json數(shù)據(jù)
這篇文章主要給大家介紹了關(guān)于java如何獲取request中json數(shù)據(jù)的相關(guān)資料,文中通過代碼示例以及圖文將獲取的方法介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用java具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08
Java多維數(shù)組和Arrays類方法總結(jié)詳解
這篇文章主要介紹了Java多維數(shù)組和Arrays類方法總結(jié)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-03-03
Spring之SseEmitter實現(xiàn)讓你的進(jìn)度條實時更新
Spring SseEmitter是一種實現(xiàn)服務(wù)器端推送事件(SSE)的機(jī)制,支持單向通信,適用于實時數(shù)據(jù)傳輸需求,通過代碼示例和應(yīng)用場景分析,展示了如何在服務(wù)端和客戶端使用SseEmitter進(jìn)行實時數(shù)據(jù)推送2025-02-02

