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

SpringBoot2底層注解@Import用法詳解

 更新時(shí)間:2022年05月28日 09:29:39   作者:把蘋果咬哭的測(cè)試筆記  
這篇文章主要為大家介紹了SpringBoot2底層注解@Import用法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

SpringBoot2注解@Import

上一篇中了解到了@Configuration,可以注冊(cè)組件。除此之外,還有許多注解也可以,用法跟之前學(xué)習(xí) spring 的時(shí)候一樣。
比如,@Bean@Component、@Controller、@Service@Repository等。

這篇介紹另外一種給容器添加組件的方法:@Import注解,給容器中導(dǎo)入組件。

@Import 導(dǎo)入組件

用法

@Import的用法很簡(jiǎn)單,放在任意配置類或者組件里面都可以。

另外,它還是數(shù)組,所以可以導(dǎo)入多個(gè)組件。比如:

@Import({User.class, DBHelper.class})
@Configuration(proxyBeanMethods = false)
public class MyConfig {
    @Bean("user1")
    public User user01(){
        User pingguo = new User("pingguo",20);
        pingguo.setPet(tomcatPet());
        return pingguo;
    }
    @Bean("pet1")
    public Pet tomcatPet(){
        return new Pet("tomcat");
    }
}

這里導(dǎo)入了 2 個(gè)組件,分別是User.classDBHelper.class。

其中 User.class 是之前我自定義的類,而DBHelper.class是隨便找的一個(gè)第三方包下的類。

寫好之后,@Import就可以給容器中自動(dòng)創(chuàng)建出這 2 個(gè)類型的組件。

驗(yàn)證

驗(yàn)證一下,容器中是否存在上述的 2 個(gè)組件。

代碼還是加在 main 方法里,把全部代碼放出來(lái),方便后續(xù)查看。

// 標(biāo)記這是一個(gè) springboot應(yīng)用,這個(gè)類是主程序類,所有啟動(dòng)的入口
@SpringBootApplication(scanBasePackages = "com.pingguo")
public class MainApplication {
    public static void main(String[] args) {
        // 返回IOC容器
        final ConfigurableApplicationContext run = SpringApplication.run(MainApplication.class, args);
        // 查看容器里的組件
        final String[] beanDefinitionNames = run.getBeanDefinitionNames();
        for (String name: beanDefinitionNames) {
            System.out.println(name);
        }
        // 從容器中獲取組件
        MyConfig bean = run.getBean(MyConfig.class);
        System.out.println("配置類也是組件:" + bean);
        User user1 = bean.user01();
        User user2 = bean.user01();
        System.out.println(user1 == user2);
        // 依賴關(guān)系
        User user01 = run.getBean("user1", User.class);
        Pet pet1 = run.getBean("pet1", Pet.class);
        System.out.println("依賴:" + (user01.getPet() == pet1));
        // @Import 組件
        String[] beanNamesForType = run.getBeanNamesForType(User.class);
        System.out.println("====獲取 User 類型的 bean ====");
        for (String s : beanNamesForType) {
            System.out.println(s);
        }
        System.out.println("====獲取 DBHelper 類型的 bean ====");
        DBHelper bean1 = run.getBean(DBHelper.class);
        System.out.println(bean1);
    }
}

看最后// @Import 組件相關(guān)的代碼。

這里因?yàn)橹皩W(xué)習(xí)中注冊(cè)過(guò)多個(gè) User 類型的組件,所以遍歷一下打印輸出。

運(yùn)行結(jié)果中,可以看到有2個(gè) User 類型的 bean,分別是user1和com.pingguo.boot.bean.User。

對(duì)于user1,是之前使用@bean注冊(cè)的。

而對(duì)于com.pingguo.boot.bean.User,則是這次使用Import導(dǎo)入進(jìn)去的,默認(rèn)組件名是全類名。

最后一個(gè)ch.qos.logback.core.db.DBHelper@4943defe,這是導(dǎo)入的第三方的包的類,成功在容器中注冊(cè)了組件。

以上就是SpringBoot2底層注解@Import用法詳解的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot2注解@Import的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Spring?Boot?快速使用?HikariCP?連接池配置詳解

    Spring?Boot?快速使用?HikariCP?連接池配置詳解

    Spring Boot 2.x 將其作為默認(rèn)的連接池組件,項(xiàng)目中添加 spring-boot-starter-jdbc 或 spring-boot-starter-data-jpa 模塊后,HikariCP 依賴會(huì)被自動(dòng)引入,這篇文章主要介紹了Spring?Boot使用HikariCP連接池配置詳解,需要的朋友可以參考下
    2023-06-06
  • springboot結(jié)合mybatis操作事務(wù)配置的處理

    springboot結(jié)合mybatis操作事務(wù)配置的處理

    在操作數(shù)據(jù)庫(kù)的時(shí)候,經(jīng)常會(huì)使用事務(wù)的處理,本文主要介紹了springboot結(jié)合mybatis操作事務(wù)配置的處理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • 詳解前后端分離之Java后端

    詳解前后端分離之Java后端

    這篇文章主要介紹了詳解前后端分離之Java后端,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • Java如何實(shí)現(xiàn)CIDR轉(zhuǎn)IP段

    Java如何實(shí)現(xiàn)CIDR轉(zhuǎn)IP段

    CIDR是一種用于高效分配和管理?IP?地址的網(wǎng)絡(luò)編址方法,這篇文章主要為大家詳細(xì)介紹了如何使用Java實(shí)現(xiàn)CIDR轉(zhuǎn)IP段,感興趣的小伙伴可以參考一下
    2025-03-03
  • 淺析對(duì)Java關(guān)鍵字final和static的理解

    淺析對(duì)Java關(guān)鍵字final和static的理解

    本文主要給大家談?wù)勑【帉?duì)java關(guān)鍵字final和static的理解,本文給大家介紹的較詳細(xì),需要的朋友參考參考下
    2017-04-04
  • SpringMVC超詳細(xì)介紹自定義攔截器

    SpringMVC超詳細(xì)介紹自定義攔截器

    Spring?MVC?的攔截器(Interceptor)與?Java?Servlet?的過(guò)濾器(Filter)類似,它主要用于攔截用戶的請(qǐng)求并做相應(yīng)的處理,通常應(yīng)用在權(quán)限驗(yàn)證、記錄請(qǐng)求信息的日志、判斷用戶是否登錄等功能上。本文將代碼演示和文字描述詳解攔截器的原理與使用
    2022-06-06
  • Java設(shè)計(jì)模式之橋模式(Bridge模式)介紹

    Java設(shè)計(jì)模式之橋模式(Bridge模式)介紹

    這篇文章主要介紹了Java設(shè)計(jì)模式之橋模式(Bridge模式)介紹,本文講解了為什么使用橋模式、如何實(shí)現(xiàn)橋模式、Bridge模式在EJB中的應(yīng)用等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • 淺談Java文件被執(zhí)行的歷程

    淺談Java文件被執(zhí)行的歷程

    學(xué)習(xí)java以來(lái),都是以語(yǔ)法,類庫(kù)入手,最基本的也是最基礎(chǔ)的java編譯過(guò)程往往被我遺忘,先解釋一下學(xué)習(xí)java第一課時(shí),都聽到過(guò)的一句話,“java是半解釋語(yǔ)言”。什么是半解釋語(yǔ)言。本文將介紹Java文件被執(zhí)行的歷程。
    2021-06-06
  • Spring?AOP?的實(shí)現(xiàn)和切點(diǎn)表達(dá)式的實(shí)現(xiàn)方式

    Spring?AOP?的實(shí)現(xiàn)和切點(diǎn)表達(dá)式的實(shí)現(xiàn)方式

    本文給大家介紹了Spring?AOP的基本概念、通知類型、切點(diǎn)表達(dá)式和切面優(yōu)先級(jí),并通過(guò)示例代碼展示了如何實(shí)現(xiàn)這些功能,感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • SpringBoot整合logback的示例代碼

    SpringBoot整合logback的示例代碼

    Logback是由log4j創(chuàng)始人設(shè)計(jì)的又一個(gè)開源日志組件,logback分為三個(gè)模塊,在文章開頭給大家介紹的很明確,接下來(lái)通過(guò)本文重點(diǎn)介紹下SpringBoot整合logback的方法,需要的朋友可以參考下
    2022-04-04

最新評(píng)論

临泉县| 宜昌市| 宜良县| 大田县| 绿春县| 兴安县| 梁平县| 怀化市| 海兴县| 什邡市| 前郭尔| 龙川县| 绥德县| 建瓯市| 罗平县| 泊头市| 滨海县| 宜昌市| 仁怀市| 临潭县| 遂平县| 大足县| 巫溪县| 和田市| 康乐县| 西畴县| 鹤庆县| 成都市| 白银市| 建湖县| 平顺县| 盐城市| 玛曲县| 湘乡市| 永春县| 泰来县| 寿阳县| 昌宁县| 凤凰县| 客服| 汤阴县|