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

SpringBoot中的ImportSelector類動(dòng)態(tài)加載bean詳解

 更新時(shí)間:2024年01月29日 08:54:49   作者:梨輕巧  
這篇文章主要介紹了SpringBoot中的ImportSelector類動(dòng)態(tài)加載bean詳解,ImportSelector接口是spring中導(dǎo)入外部配置的核心接口,根據(jù)給定的條件(通常是一個(gè)或多個(gè)注釋屬性)判定要導(dǎo)入那個(gè)配置類,在spring自動(dòng)化配置和@EnableXXX中都有它的存在,需要的朋友可以參考下

ImportSelector類動(dòng)態(tài)加載bean

實(shí)現(xiàn)ImportSelector類→ 動(dòng)態(tài)加載bean → 源碼中大量使用

代碼

package com.qing.config;
import org.springframework.context.annotation.ImportSelector;
import org.springframework.core.type.AnnotationMetadata;
import java.util.Map;
public class MyImportSelector implements ImportSelector {
    @Override
    public String[] selectImports(AnnotationMetadata metadata) {
        //metadata元數(shù)據(jù) : 指的是加載本類MyImportSelector的類
        //metadata的get、has、is 有大量方法,可以用來(lái)獲取判斷數(shù)據(jù)
        Map<String, Object> annotationAttributes = metadata.getAnnotationAttributes("org.springframework.context.annotation.ComponentScan");
        System.out.println("注解"+annotationAttributes);
        boolean hasConfiguration = metadata.hasAnnotation("org.springframework.context.annotation.Configuration");
        if(hasConfiguration){
            return new String[]{"com.qing.bean.cat"};
        }
        return new String[]{"com.qing.bean.dog"};
    }
}

元數(shù)據(jù)metadata指的是下面的config6

package com.qing.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
//@Configuration 注解是測(cè)試用的
@Configuration
//@ComponentScan 注解是測(cè)試用的
@ComponentScan("com.qing.bean")
@Import(MyImportSelector.class)
public class SpringConfig6 {
}

測(cè)試

package com.qing.app;
import com.qing.config.SpringConfig6;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class App6 {
    public static void main(String[] args) {
        ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig6.class);
        String[] names = ctx.getBeanDefinitionNames();
        for (String name : names) {
            System.out.println("bean的名字:" + name);
        }
    }
}

 結(jié)果

因?yàn)樵獢?shù)據(jù)上有@Configuration注解,所以返回的是cat

元數(shù)據(jù)上沒(méi)有@Configuration注解了,所以返回的是dog

總結(jié)

到此這篇關(guān)于SpringBoot中的ImportSelector類動(dòng)態(tài)加載bean詳解的文章就介紹到這了,更多相關(guān)ImportSelector類動(dòng)態(tài)加載bean內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring Boot管理用戶數(shù)據(jù)的操作步驟

    Spring Boot管理用戶數(shù)據(jù)的操作步驟

    SpringBoot結(jié)合Thymeleaf模板引擎,可以快速搭建Web應(yīng)用,介紹了使用SpringBoot處理JSON數(shù)據(jù)的基本過(guò)程,包括創(chuàng)建實(shí)體類、視圖頁(yè)面和控制器,通過(guò)這些步驟,即可完成基于SpringBoot和Thymeleaf的簡(jiǎn)單Web開(kāi)發(fā),感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • Java集合類的組織結(jié)構(gòu)和繼承、實(shí)現(xiàn)關(guān)系詳解

    Java集合類的組織結(jié)構(gòu)和繼承、實(shí)現(xiàn)關(guān)系詳解

    這篇文章主要介紹了Java集合類的組織結(jié)構(gòu)和繼承、實(shí)現(xiàn)關(guān)系,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • springboot啟動(dòng)不加載bootstrap.yml文件的問(wèn)題

    springboot啟動(dòng)不加載bootstrap.yml文件的問(wèn)題

    這篇文章主要介紹了springboot啟動(dòng)不加載bootstrap.yml文件的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 解決springboot啟動(dòng)成功,但訪問(wèn)404的問(wèn)題

    解決springboot啟動(dòng)成功,但訪問(wèn)404的問(wèn)題

    這篇文章主要介紹了解決springboot啟動(dòng)成功,但訪問(wèn)404的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java用戶交互scanner及運(yùn)算結(jié)構(gòu)代碼詳解

    Java用戶交互scanner及運(yùn)算結(jié)構(gòu)代碼詳解

    這篇文章主要介紹了Java用戶交互scanner及運(yùn)算結(jié)構(gòu)代碼詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • websocket在springboot+vue中的使用教程

    websocket在springboot+vue中的使用教程

    這篇文章主要介紹了websocket在springboot+vue中的使用教程,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Java 實(shí)現(xiàn)一個(gè)漢諾塔實(shí)戰(zhàn)練習(xí)

    Java 實(shí)現(xiàn)一個(gè)漢諾塔實(shí)戰(zhàn)練習(xí)

    漢諾塔是源于印度一個(gè)古老傳說(shuō)的益智玩具。大梵天創(chuàng)造世界時(shí)做了三根石柱,在一根柱子上從下往上按大小順序摞著64片黃金圓盤(pán)。大梵天命令婆羅門把圓盤(pán)從下面開(kāi)始按大小順序重新擺放在另一根柱子上。并且規(guī)定,在小圓盤(pán)上不能放大圓盤(pán),三根柱子之間一次只能移動(dòng)一個(gè)圓盤(pán)
    2021-10-10
  • Java高效查找并替換Word文檔文本的全面指南

    Java高效查找并替換Word文檔文本的全面指南

    在日常的軟件開(kāi)發(fā)和業(yè)務(wù)流程中,處理 Word 文檔是常見(jiàn)的需求,本文將深入探討如何使用 Java 語(yǔ)言實(shí)現(xiàn) Word 文檔的查找與替換操作,需要的小伙伴可以了解下
    2025-09-09
  • 教你Spring如何使用三級(jí)緩存解決循環(huán)依賴

    教你Spring如何使用三級(jí)緩存解決循環(huán)依賴

    這篇文章主要介紹了Spring使用三級(jí)緩存解決循環(huán)依賴的過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • Java ThreadLocal的詳細(xì)解釋

    Java ThreadLocal的詳細(xì)解釋

    這篇文章主要介紹了快速了解Java中ThreadLocal類,介紹了ThreadLocal 是什么,ThreadLocal的作用,ThreadLocal 原理等相關(guān)內(nèi)容,具有一定參考價(jià)值,需要的朋友可以了解下。
    2021-11-11

最新評(píng)論

华池县| 阳城县| 墨竹工卡县| 威远县| 南投县| 武山县| 江华| 庆元县| 盐山县| 华宁县| 新乡县| 邵武市| 丁青县| 广安市| 天镇县| 定边县| 兴安县| 保康县| 织金县| 曲周县| 扎兰屯市| 广昌县| 东源县| 乌鲁木齐县| 盐池县| 上思县| 镇雄县| 竹山县| 罗田县| 商都县| 东乡族自治县| 蒙自县| 灵宝市| 呼伦贝尔市| 浦北县| 赫章县| 威信县| 河北区| 佛教| 沅陵县| 南丹县|