温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

SpringBoot2底层注解@Import怎么使用

发布时间:2022-05-30 10:36:20 来源:亿速云 阅读:173 作者: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