您好,登錄后才能下訂單哦!
這篇文章主要介紹“SpringBoot2底層注解@Import怎么使用”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“SpringBoot2底層注解@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.class
和DBHelper.class
。
其中 User.class
是之前我自定義的類,而DBHelper.class
是隨便找的一個第三方包下的類。
寫好之后,@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 類型的組件,所以遍歷一下打印輸出。
運行結果中,可以看到有2個 User 類型的 bean,分別是user1
和com.pingguo.boot.bean.User。
對于user1
,是之前使用@bean
注冊的。
而對于com.pingguo.boot.bean.User,則是這次使用Import
導入進去的,默認組件名是全類名。
最后一個ch.qos.logback.core.db.DBHelper@4943defe,這是導入的第三方的包的類,成功在容器中注冊了組件。
關于“SpringBoot2底層注解@Import怎么使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。