Spring DI

一、概述

? ? ? ? IOC(控制反轉(zhuǎn))負(fù)責(zé)對(duì)象的創(chuàng)建。

? ? ? ? 本文介紹的DI(依賴(lài)注入),負(fù)責(zé)對(duì)象創(chuàng)建后,屬性的賦值。通過(guò)xml的配置,代替寫(xiě)代碼為對(duì)象屬性賦值。

二、注入方法

2.1 set方法注入

2.1.1 Spring內(nèi)置類(lèi)型注入

? ? ? ? 基本類(lèi)型

????????<property name="id" value="1"></property>

? ? ? ? list類(lèi)型

? ? ????<property name="jobs">

????????????????<list>

????????????????????<value>上單</value>

????????????????????<value>坦克</value>

????????????????</list>

????????</property>

? ? ? ? set類(lèi)型

????????<property name="set">

????????????<set>

????????????????<value>沈騰</value>

????????????????<value>賈玲</value>

????????????</set>

????????</property>

? ? ? ? map類(lèi)型

????????<property name="map">

????????????<map>

????????????????<entry key="1" value="蝙蝠俠"></entry>

????????????????<entry key="2" value="雷神"></entry>

????????????????<entry key="3" value="美國(guó)隊(duì)長(zhǎng)"></entry>

????????????????<entry key="4" value="綠巨人"></entry>

????????????</map>

????????</property>

? ? ? ? property類(lèi)型

????????<property name="prop">

????????????<props>

????????????????<prop key="1">1</prop>

????????????????<prop key="2">2</prop>

????????????</props>

????????</property>

2.1.2 自定義類(lèi)型注入

????????<property name="dog" ref="dog"></property>

2.1.3 自定義類(lèi)型注入,自動(dòng)裝配方法

配置全局自動(dòng)裝配

default-autowire="byName"

指定bean配置自動(dòng)裝配

<bean id="hero" class="com.dreamguard.domain.Hero" autowire="byName">

自動(dòng)裝配的兩種方式

byName:根據(jù)javabean中需要注入的屬性的名字 ,在spring容器中找對(duì)應(yīng)id的<bean>將該<bean>的對(duì)象復(fù)制給 當(dāng)前的屬性

byType:根據(jù)javabean中需要注入的屬性的類(lèi)型,在spring容器中找對(duì)應(yīng)class類(lèi)型的<bean>將該<bean>的對(duì)象復(fù)制給 當(dāng)前的屬性

**byType方式 根據(jù)類(lèi)型進(jìn)行匹配,可能匹配到多個(gè)<bean>,此時(shí)會(huì)拋出異常。而byName是通過(guò)id來(lái)尋找<bean>,id沒(méi)有重復(fù),不會(huì)有這方面的問(wèn)題,所以推薦使用byName方式

2.2 構(gòu)造方法注入(不常用)

暫不介紹,可在給出的代碼,了解使用


完整代碼下載

????????https://github.com/hailindai/SpringSample

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容