中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringBoot2底層注解@Import怎么使用

發布時間:2022-05-30 10:36:20 來源:億速云 閱讀:144 作者:zzz 欄目:開發技術

這篇文章主要介紹“SpringBoot2底層注解@Import怎么使用”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“SpringBoot2底層注解@Import怎么使用”文章能幫助大家解決問題。

@Import 導入組件

用法

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

另外,它還是數組,所以可以導入多個組件。比如:

@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");
    }
}

這里導入了 2 個組件,分別是User.classDBHelper.class

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

SpringBoot2底層注解@Import怎么使用

寫好之后,@Import就可以給容器中自動創建出這 2 個類型的組件。

驗證

驗證一下,容器中是否存在上述的 2 個組件。

代碼還是加在 main 方法里,把全部代碼放出來,方便后續查看。

// 標記這是一個 springboot應用,這個類是主程序類,所有啟動的入口
@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);
        // 依賴關系
        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 組件相關的代碼。

這里因為之前學習中注冊過多個 User 類型的組件,所以遍歷一下打印輸出。

SpringBoot2底層注解@Import怎么使用

運行結果中,可以看到有2個 User 類型的 bean,分別是user1和com.pingguo.boot.bean.User。

對于user1,是之前使用@bean注冊的。

SpringBoot2底層注解@Import怎么使用

而對于com.pingguo.boot.bean.User,則是這次使用Import導入進去的,默認組件名是全類名。

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

關于“SpringBoot2底層注解@Import怎么使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洞口县| 太白县| 长垣县| 沧州市| 平凉市| 玉田县| 广饶县| 嘉鱼县| 富顺县| 无棣县| 壶关县| 南召县| 应用必备| 临邑县| 玉林市| 巨鹿县| 菏泽市| 志丹县| 太原市| 综艺| 唐山市| 竹北市| 镇坪县| 荣昌县| 梅州市| 章丘市| 长子县| 桃园市| 贞丰县| 滁州市| 维西| 汤阴县| 灌云县| 琼结县| 西平县| 房山区| 诸城市| 滦平县| 秭归县| 靖边县| 台安县|