最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring中的依賴注入DI詳解

 更新時(shí)間:2024年01月08日 09:42:37   作者:nsnsttn  
這篇文章主要介紹了Spring中的依賴注入DI詳解,組件之間依賴關(guān)系由容器在運(yùn)行期決定,形象的說(shuō),即由容器動(dòng)態(tài)的將依賴關(guān)系注入到組件之中,依賴注入的目的并非為軟件系統(tǒng)帶來(lái)更多功能,是為了提升組件重用的頻率,并為系統(tǒng)搭建一個(gè)靈活、可擴(kuò)展的平臺(tái),需要的朋友可以參考下

spring自動(dòng)注入的方式

xml方式

手動(dòng):

  • set方法注入
<bean name ="orderService" class ="com.zzy.service.OrderService">          
</bean>

<bean name ="userService" class ="com.zzy.service.UserService">
    <property name="orderService" ref= "orderService"></property>     
</bean>
  • 構(gòu)造器注入
<bean name ="orderService" class ="com.zzy.service.OrderService">          
</bean>

<bean name ="userService" class ="com.zzy.service.UserService">
    <constructor-arg index="0" ref= "orderService"/>     
</bean>
  • p標(biāo)簽注入

不常用略

自動(dòng)注入:

<bean name ="orderService" class ="com.zzy.service.OrderService">          
</bean>
<!--autowire  默認(rèn)五種方式(ByType,ByName,default,no,constructor),
byType:根據(jù)類型去容器尋找
ByName:找set方法,去除Set后的名稱去容器中尋找
no:默認(rèn)
-->
<bean name ="userService" class ="com.zzy.service.UserService" autowire = "byType"> 
</bean>

spring注解方式(常用)

  • 屬性注入
  • 方法注入
  • 構(gòu)造器注入

直接看代碼

package com.zzy.zzyNotes.spring.DI依賴注入;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
/**
 * @author: zzy
 * @createDate: 2022-01-07 15:28
 * @description:
 * spring依賴注入的方式
 * 1.屬性注入
 * 2.方法注入
 * 3.構(gòu)造器注入
 *  @Autowired  先根據(jù)Type,在根據(jù)名字注入,可以放在屬性.普通方法,構(gòu)造方法上
 *
 *  @Resource  根據(jù)名字注入,可以放在屬性.普通方法上
 *
 *  @Qualifier  指定注入Bean的名字,可以放在屬性.普通方法(單參數(shù)),普通方法形參前,構(gòu)造方法形參前
 *
 *  @Primary  相同類型的Bean的優(yōu)先級(jí)最高
 */
@Service
public class UserService {
    //一:屬性注入 -------------------------------------------------------------------------------------------------------
    //接口
    @Autowired                         //@Autowired先根據(jù)Type,在根據(jù)名字
    @Qualifier("ticketsOrderService")  //指定尋找的名字
    private OrderService orderService;
    //類
    @Autowired                         //@Autowired先根據(jù)Type,在根據(jù)名字
    private GoodsOrderService goodsOrderService;
    //二:方法注入不一定是set方法) -----------------------------------------------------------------------------------------
    //使用方法注入
    //這個(gè)我們想指定注入水果Bean
    //方式有三種
    //1.@Primary FruitsOrderService上加@Primary
    //2.@Autowired 配合 @Qualifier("fruitsOrderService") @Qualifier可以加在參數(shù)前面
    //2.@Resource(name = "fruitsOrderService") 根據(jù)name注入
    private OrderService fruitsOrderService;
    private OrderService goodsOrderService2;
    @Autowired
    //@Resource(name = "fruitsOrderService")
    public void fruits(OrderService orderService,GoodsOrderService goodsOrderService) {
        this.fruitsOrderService = orderService;
        this.goodsOrderService2 = goodsOrderService;
    }
    //三:構(gòu)造方法注入            -----------------------------------------------------------------------------------------
    //構(gòu)造方法注入meatOrderService,啥也不加會(huì)注入fruitsOrderService,因?yàn)锧Primary.需要用@Qualifier("meatOrderService")指定
    private OrderService meatOrderService;
    @Autowired
    public UserService( OrderService orderService) {
        this.meatOrderService = orderService;
    }
    public UserService() {
    }
    /**
     * 查詢注入的Bean
     */
    public void getBean() {
        System.out.println(orderService);
        System.out.println("屬性注入 --------");
        System.out.println(goodsOrderService);
        System.out.println("屬性注入 --------");
        System.out.println(fruitsOrderService);
        System.out.println("方法注入 --------");
        System.out.println(goodsOrderService2);
        System.out.println("方法注入 --------");
        System.out.println(meatOrderService);
        System.out.println("構(gòu)造器注入 --------");
    }
}

spring @Autowired自動(dòng)注入的流程

spring自動(dòng)注入的流程(簡(jiǎn))

添加了@Autowired的會(huì)被標(biāo)記為注入點(diǎn),注入點(diǎn)兩種

1.屬性

2.方法

遍歷所有的注入點(diǎn)

先通過(guò)Type,在根據(jù)Name尋找容器中的Bean,找不到就創(chuàng)建,找到后通過(guò)反射給Bean的屬性賦值.靜態(tài)屬性不會(huì)賦值

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

相關(guān)文章

  • Java哈希表和有序表實(shí)例代碼講解

    Java哈希表和有序表實(shí)例代碼講解

    這篇文章主要介紹了Java哈希表和有序表,哈希表也稱散列表,是一種以鍵值對(duì)形式存儲(chǔ)記錄的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)支持根據(jù)鍵的內(nèi)容直接訪問(wèn)在內(nèi)存特定位置的值,并且可以進(jìn)行查找、添加和刪除操作
    2023-04-04
  • Java經(jīng)典排序算法之二分插入排序詳解

    Java經(jīng)典排序算法之二分插入排序詳解

    這篇文章主要為大家詳細(xì)介紹了Java經(jīng)典排序算法之二分插入排序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • Java中的阻塞隊(duì)列詳細(xì)介紹

    Java中的阻塞隊(duì)列詳細(xì)介紹

    這篇文章主要介紹了Java中的阻塞隊(duì)列詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • SpringBoot的自動(dòng)配置原理解析

    SpringBoot的自動(dòng)配置原理解析

    這篇文章主要介紹了SpringBoot的自動(dòng)配置原理解析,SpringBoot的自動(dòng)配置要從它的啟動(dòng)類@SpringBootApplication說(shuō)起,點(diǎn)進(jìn)注解,@Target設(shè)置當(dāng)前注解可以標(biāo)記在哪,(ElementType.type)表示標(biāo)注在類上面,需要的朋友可以參考下
    2023-08-08
  • Java多態(tài)的使用注意事項(xiàng)

    Java多態(tài)的使用注意事項(xiàng)

    本文講解了什么是JAVA多態(tài)和Java多態(tài)是如何實(shí)現(xiàn)的,在使用Java多態(tài)時(shí)需要注意什么,具體大家看下面的內(nèi)容
    2013-11-11
  • Java實(shí)現(xiàn)序列化與反序列化的簡(jiǎn)單示例

    Java實(shí)現(xiàn)序列化與反序列化的簡(jiǎn)單示例

    序列化與反序列化是指Java對(duì)象與字節(jié)序列的相互轉(zhuǎn)換,一般在保存或傳輸字節(jié)序列的時(shí)候會(huì)用到,下面有兩個(gè)Java實(shí)現(xiàn)序列化與反序列化的簡(jiǎn)單示例,不過(guò)還是先來(lái)看看序列和反序列化的具體概念:
    2016-05-05
  • Java從入門到精通之旅類和對(duì)象全面解析

    Java從入門到精通之旅類和對(duì)象全面解析

    Java是一門純面向?qū)ο蟮恼Z(yǔ)言(OOP),在面向?qū)ο蟮氖澜缋?一切皆為對(duì)象,面向?qū)ο笫墙鉀Q問(wèn)題的一種思想,主要依靠對(duì)象之間的交互完成一件事情,這篇文章主要介紹了Java從入門到精通之旅類和對(duì)象全面解析,需要的朋友可以參考下
    2025-04-04
  • SpringBoot實(shí)現(xiàn)本地上傳文件到resources目錄

    SpringBoot實(shí)現(xiàn)本地上傳文件到resources目錄

    Java后端項(xiàng)目上傳文件是一個(gè)很常見(jiàn)的需求,這篇文章主要為大家介紹了SpringBoot如何實(shí)現(xiàn)本地上傳文件到resources目錄永久保存下載,需要的可以參考一下
    2023-07-07
  • Spring Boot循環(huán)依賴的癥狀和解決方案

    Spring Boot循環(huán)依賴的癥狀和解決方案

    循環(huán)依賴是指在Spring Boot 應(yīng)用程序中,兩個(gè)或多個(gè)類之間存在彼此依賴的情況,形成一個(gè)循環(huán)依賴鏈。這篇文章主要介紹了SpringBoot循環(huán)依賴的癥狀和解決方法
    2023-04-04
  • 淺談java web中常用對(duì)象對(duì)應(yīng)的實(shí)例化接口

    淺談java web中常用對(duì)象對(duì)應(yīng)的實(shí)例化接口

    下面小編就為大家?guī)?lái)一篇淺談java web中常用對(duì)象對(duì)應(yīng)的實(shí)例化接口。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02

最新評(píng)論

城步| 凤庆县| 上饶市| 太仆寺旗| 乐业县| 乌兰浩特市| 乌拉特中旗| 义乌市| 丰顺县| 怀宁县| 镇康县| 陵川县| 鄯善县| 武威市| 右玉县| 金山区| 来宾市| 武强县| 融水| 连城县| 深州市| 磴口县| 新绛县| 晋中市| 长垣县| 兴文县| 柘荣县| 新营市| 柳江县| 静安区| 类乌齐县| 长泰县| 定结县| 双柏县| 汝城县| 锦州市| 信丰县| 枣庄市| 正安县| 炎陵县| 灌云县|