欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

spring依賴注入深入理解

 更新時(shí)間:2021年03月01日 17:05:00   作者:徘徊在深夜中的貓  
這篇文章主要介紹了spring依賴注入深入理解,列舉了最常見的注入方式,有感興趣的同學(xué)可以研究下

IOC&&DI

IOC(Inversion of Control)一般分為兩種類型:依賴注入DI(Dependency Injection)和依賴查找(Dependency Lookup)

org.springframework.beans.factory.BeanFactory是IOC容器的具體實(shí)現(xiàn),是Spring IOC容器的核心接口

Spring IOC負(fù)責(zé)創(chuàng)建對象,管理對象,裝配對象,配置對象,并且管理這些對象的整個生命周期。

優(yōu)點(diǎn):把應(yīng)用的代碼量降到最低。最小代價(jià)和最小侵入式是松散耦合得以實(shí)現(xiàn)。IOC容器支持加載服務(wù)時(shí)的餓漢式初始化和懶加載

DI依賴注入是IOC的一個方面,不需要創(chuàng)建對象,只需描述如何被創(chuàng)建,在配置文件中描述組件需要哪些服務(wù),之后IOC容器進(jìn)行組裝

IOC的注入方式:1、構(gòu)造器依賴注入 2、Setter方法注入 3、工廠方法注入(很少使用)

Setter方法注入

通過Setter方法注入bean的屬性值或依賴的對象,是最常用的注入方式

<!-- property來配置屬性 
	name為屬性名
 	value為屬性值
-->
<bean id="helloWorld" class="com.zhanghe.study.spring4.beans.helloworld.HelloWorld">
 <property name="name" value="Spring Hello"/>
</bean>

構(gòu)造器注入

構(gòu)造器注入需要提供相應(yīng)的構(gòu)造器

<!-- 可以使用index來指定參數(shù)的順序,默認(rèn)是按照先后順序 -->
<bean id="car" class="com.zhanghe.study.spring4.beans.beantest.Car">
 <constructor-arg value="法拉利" index="0"/>
 <constructor-arg value="200" index="1"/>
</bean>

但是如果存在重載的構(gòu)造器的話,只使用index索引方式無法進(jìn)行精確匹配,還需要使用類型type來進(jìn)行區(qū)分,index和type可以搭配使用

public Car(String brand, double price) {
 this.brand = brand;
 this.price = price;
}

public Car(String brand, int speed) {
 this.brand = brand;
 this.speed = speed;
}
<bean id="car" class="com.zhanghe.study.spring4.beans.beantest.Car">
 <constructor-arg value="法拉利" index="0"/>
 <constructor-arg value="20000.0" type="double"/>
</bean>

<bean id="car2" class="com.zhanghe.study.spring4.beans.beantest.Car">
 <constructor-arg value="瑪莎拉蒂" index="0"/>
 <constructor-arg value="250" type="int"/>
</bean>

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

相關(guān)文章

  • Java list亂序的實(shí)現(xiàn)三種方法

    Java list亂序的實(shí)現(xiàn)三種方法

    本文主要介紹了Java list亂序的實(shí)現(xiàn)三種方法,包含Collections.shuffle()方法,random和Stream API這三種,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • Java獲取json數(shù)組對象的實(shí)例講解

    Java獲取json數(shù)組對象的實(shí)例講解

    下面小編就為大家分享一篇Java獲取json數(shù)組對象的實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • 不了解這12個語法糖,別說你會Java

    不了解這12個語法糖,別說你會Java

    這篇文章主要介紹了不了解這12個語法糖,別說你會Java,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • SpringBoot中的server.context-path的實(shí)現(xiàn)

    SpringBoot中的server.context-path的實(shí)現(xiàn)

    本文主要介紹了SpringBoot中的server.context-path的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • idea如何自定義代碼模板

    idea如何自定義代碼模板

    這篇文章主要介紹了idea如何自定義代碼模板問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • RocketMQ消息隊(duì)列實(shí)現(xiàn)隨機(jī)消息發(fā)送當(dāng)做七夕禮物

    RocketMQ消息隊(duì)列實(shí)現(xiàn)隨機(jī)消息發(fā)送當(dāng)做七夕禮物

    這篇文章主要為大家介紹了RocketMQ消息隊(duì)列實(shí)現(xiàn)隨機(jī)消息發(fā)送當(dāng)做七夕禮物,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Java SpringBoot開發(fā)小技巧詳解

    Java SpringBoot開發(fā)小技巧詳解

    這篇文章主要介紹了淺談SpringBoot項(xiàng)目如何讓前端開發(fā)提高效率(小技巧),主要介紹了Swagger和Nginx提高效率的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • MyBatis-Plus多數(shù)據(jù)源的示例代碼

    MyBatis-Plus多數(shù)據(jù)源的示例代碼

    本文主要介紹了MyBatis-Plus多數(shù)據(jù)源的示例代碼,包括依賴配置、數(shù)據(jù)源配置、Mapper 和 Service 的定義,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05
  • Idea使用插件實(shí)現(xiàn)逆向工程搭建SpringBoot項(xiàng)目的圖文教程

    Idea使用插件實(shí)現(xiàn)逆向工程搭建SpringBoot項(xiàng)目的圖文教程

    這篇文章主要介紹了Idea使用插件實(shí)現(xiàn)逆向工程搭建SpringBoot項(xiàng)目,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • 在Linux系統(tǒng)上升級Java版本的兩種方法步驟

    在Linux系統(tǒng)上升級Java版本的兩種方法步驟

    由于項(xiàng)目升級,需要將JDK7升級到JDK8,升級JDK的同時(shí)也要升級一些其他的版本,下面這篇文章主要給大家介紹了關(guān)于在Linux系統(tǒng)上升級Java版本的兩種方法步驟,需要的朋友可以參考下
    2024-09-09

最新評論