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)文章
Java使用代理進(jìn)行網(wǎng)絡(luò)連接方法示例
這篇文章主要介紹了Java使用代理進(jìn)行網(wǎng)絡(luò)連接方法示例,內(nèi)容十分詳細(xì),需要的朋友可以參考下。2017-09-09Java數(shù)據(jù)結(jié)構(gòu)之插入排序與希爾排序
在本篇文章,我們將為小伙伴們進(jìn)行排序概念的基本講解并具體講解其中的兩種基礎(chǔ)排序:插入排序和希爾排序,希望小伙伴們能夠從中有所收獲2023-04-04如何使用RequestHeaders添加自定義參數(shù)
這篇文章主要介紹了使用RequestHeaders添加自定義參數(shù)方式,具有很好的參考價值,希望對大家有所幫助。2022-02-02Java中ConcurrentHashMap是如何實現(xiàn)線程安全
ConcurrentHashMap是一個哈希表,支持檢索的全并發(fā)和更新的高預(yù)期并發(fā)。本文主要介紹了Java中ConcurrentHashMap是如何實現(xiàn)線程安全,感興趣的可以了解一下2021-11-11基于java時區(qū)轉(zhuǎn)換夏令時的問題及解決方法
下面小編就為大家分享一篇基于java時區(qū)轉(zhuǎn)換夏令時的問題及解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-11-11