亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Spring IOC (DI) 依賴注入的四種方式示例詳解

 更新時間:2023年06月26日 11:45:17   作者:清瀟和梨花  
這篇文章主要介紹了Spring IOC (DI) 依賴注入的四種方式,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

依賴注入的四種方式:

set 注入

賦值,默認使用的是set() 方法,依賴注入底層是通過反射實現(xiàn)的

<bean id="student" class="cust.zaw.entity.Student">
	<property name="stuName" value="lc"></property>
</bean>

構(gòu)造器注入

使用構(gòu)造方法注入

<bean id="student" class="cust.zaw.entity.Student">
參數(shù)順序相同的話,可以不寫index
<constructor-arg value=""></constructor-arg>
參數(shù)順序不同的話,寫index或者name或者type
<constructor-arg value="" index=“0”></constructor-arg>
<constructor-arg value="" index=“1”></constructor-arg>
<constructor-arg value="" name=“”></constructor-arg>
<constructor-arg value="" type=“”></constructor-arg>
</bean>

p命名空間注入

引入命名空間就是加一句話:xmlns:p=“http://www.springframework.org/schema/p”

也可以這樣引入,它會自動引入命名空間

引入命名空間后,就可以這樣以這樣的方式實現(xiàn)依賴注入

<bean id="student" class="cust.zaw.entity.Student" p:stuAge="" p:stuName="" p:stuNO-ref="">
</bean>
  • 注意:

無論是String 還是int / short / long ,在賦值時都是value=“值”,因此建議 配合type / name 進行區(qū)分

  • IOC 容器賦值:

簡單類型,value=“”對象類型(當一個類中有其他類 類型,為其賦值時使用),ref=“需要引用的id值”

注入各種集合數(shù)據(jù)類型

List Set Map properties

寫一個實體類

package cust.zaw.entity;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
public class AllCollectionType {
	private List<String> list;
	private String[] array;
	private Set<String> set;
	private Map<String,String> map;
	private Properties props;
	public List<String> getList() {
		return list;
	}
	public void setList(List<String> list) {
		this.list = list;
	}
	public String[] getArray() {
		return array;
	}
	public void setArray(String[] array) {
		this.array = array;
	}
	public Set<String> getSet() {
		return set;
	}
	public void setSet(Set<String> set) {
		this.set = set;
	}
	public Map<String, String> getMap() {
		return map;
	}
	public void setMap(Map<String, String> map) {
		this.map = map;
	}
	public Properties getProps() {
		return props;
	}
	public void setProps(Properties props) {
		this.props = props;
	}
	@Override
	public String toString() {
		String strContent=null;
		for(String str : array) {
			strContent +=str + ",";
		}
		return "AllCollectionType [getList()=" + getList() + ", getArray()=" + Arrays.toString(getArray())
				+ ", getSet()=" + getSet() + ", getMap()=" + getMap() + ", getProps()=" + getProps() + "]"+strContent;
	}
}

編寫配置文件

<bean id="collectionDemo" class="cust.zaw.entity.AllCollectionType">
		<property name="list">
			<list>
				<value>足球</value>
				<value>籃球</value>
				<value>乒乓球</value>
			</list>
		</property>
		<property name="array">
			<array>
				<value>足球1</value>
				<value>籃球1</value>
				<value>乒乓球1</value>
			</array>
		</property>
		<property name="set">
			<set>
				<value>足球2</value>
				<value>籃球2</value>
				<value>乒乓球2</value>
			</set>
		</property>
		<property name="map">
			<map>
				<entry>
					<key>
						<value>football3</value>
					</key>
					<value>足球3</value>
				</entry>
				<entry>
					<key>
						<value>basketball3</value>
					</key>
					<value>籃球3</value>
				</entry>
				<entry>
					<key>
						<value>ppq3</value>
					</key>
					<value>乒乓球3</value>
				</entry>
			</map>
		</property>
		<property name="props">
			<props>
				<prop key="football4">足球4</prop>
				<prop key="baskball4">籃球4</prop>
				<prop key="pp4">乒乓球4</prop>
			</props>
		</property>		
	</bean>

獲取輸出

public static void collectionDemp() {
?? ??? ?ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
?? ??? ?AllCollectionType type=(AllCollectionType)context.getBean("collectionDemo");
?? ??? ?System.out.println(type);
?? ?}

給對象類型賦值null:

<!-- 注意沒有<value> -->
<property name="name">
			<null/>
</property>

賦空值

<property name="name">
			<value></value>
</property>

自動裝配注入(只適用于 ref 類型):

約定優(yōu)于配置

  • byName:自動尋找:其他bean的id值 = 該Course類的屬性名
  • byType:其他類型(class)是否與該Course類的ref 屬性類型一致
  • (必須滿足當前ioc容器只有一個bean滿足)
  • constructor:其他bean的類型(class)是否與該Course 類的構(gòu)造方法參數(shù) 的類型一致;
<!--
		autowire="byName"
		Course類中有一個ref屬性teacher(屬性名),并且該ioc容器中恰好有一個 bean的id也是teacher
		bean的id=類的屬性名 
 -->
<bean id="student" class="cust.zaw.entity.Student" autowire="byName">
		<property name="stuNO" value="2"></property>
		<property name="stuName" value="lc"></property>
		<property name="stuAge" value="24"></property>
		<!-- <property name="teacher" ref="teacher"></property>-->
</bean>

可以在頭文件中,一次性將ioc容器的所有bean 統(tǒng)一設(shè)置成自動裝配自動裝配雖然可以減少代碼量,但是會降低程序可讀性

<beans xmlns="http://www.springframework.org/schema/beans"
	....
	default-autowire="byName">

到此這篇關(guān)于Spring IOC (DI) 依賴注入的四種方式的文章就介紹到這了,更多相關(guān)Spring IOC依賴注入內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java基礎(chǔ)的詳細了解第四天

    java基礎(chǔ)的詳細了解第四天

    這篇文章對Java編程語言的基礎(chǔ)知識作了一個較為全面的匯總,在這里給大家分享一下。需要的朋友可以參考,希望能給你帶來幫助
    2021-08-08
  • Spring:@Async注解和AsyncResult與CompletableFuture使用問題

    Spring:@Async注解和AsyncResult與CompletableFuture使用問題

    這篇文章主要介紹了Spring:@Async注解和AsyncResult與CompletableFuture使用問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Java類的定義以及執(zhí)行順序?qū)W習教程

    Java類的定義以及執(zhí)行順序?qū)W習教程

    這篇文章主要介紹了Java類的定義以及執(zhí)行順序?qū)W習教程,包括對象的創(chuàng)建等面向?qū)ο缶幊痰幕A(chǔ)知識,需要的朋友可以參考下
    2015-09-09
  • MyBatis緩存實現(xiàn)原理及代碼實例解析

    MyBatis緩存實現(xiàn)原理及代碼實例解析

    這篇文章主要介紹了MyBatis緩存實現(xiàn)原理及代碼實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • 分隔List集合,按指定大小,將集合分成多個的方法

    分隔List集合,按指定大小,將集合分成多個的方法

    下面小編就為大家?guī)硪黄指鬖ist集合,按指定大小,將集合分成多個的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • JDK8中新增的Optional工具類基本使用

    JDK8中新增的Optional工具類基本使用

    Optional不是對null關(guān)鍵字的一種替代,而是對于null判定提供了一種更加優(yōu)雅的實現(xiàn),接下來通過本文給大家分享JDK8中新增的Optional工具類基本使用,感興趣的朋友跟隨小編一起看看吧
    2021-06-06
  • SpringBoot2新特性 自定義端點詳解

    SpringBoot2新特性 自定義端點詳解

    這篇文章主要介紹了SpringBoot2新特性 自定義端點詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java?File類提供的方法與操作

    Java?File類提供的方法與操作

    Java使用File類來表示計算機系統(tǒng)磁盤文件的對象類型。File中提供了大量的方法,可以對文件進行增加、刪除、修改、重命名等常規(guī)操作。File類的對象會存儲文件自身的信息,例如文件在系統(tǒng)中的存儲目錄、文件大小、文件讀寫權(quán)限等
    2023-03-03
  • 通過Spring層面進行事務(wù)回滾的實現(xiàn)

    通過Spring層面進行事務(wù)回滾的實現(xiàn)

    本文主要介紹了通過Spring層面進行事務(wù)回滾的實現(xiàn),包括聲明式事務(wù)和編程式事務(wù),具有一定的參考價值,感興趣的可以了解一下
    2025-04-04
  • 在Mybatis中association標簽多層嵌套的問題

    在Mybatis中association標簽多層嵌套的問題

    這篇文章主要介紹了在Mybatis中association標簽多層嵌套的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03

最新評論