当前位置: 首页 > news >正文

【SpringBoot】IDEA查看spring bean的依赖关系

前因:研究springcloud config组件时,我发现config-server包下的EnvironmentController不在扫描的包路径下却可以响应客户端的请求,这引起了我的注意,我的问题是:EnvironmentController是怎么被添加进bean工厂的。本章就是分享我在查找bean依赖关系总结的一点小技巧

通常来讲,让bean加入spring的管理有3种方法

第一种是使用扫描组件@ComponentScan和@Component注解,也是开发中最常见的做法。springboot应用启动时会扫描@ComponentScan的basePackages属性指定的包路径下的类文件,将路径下用组件注解(@Component,@Controller,@Service)修饰的类加入spring容器

第二种是基于springboot自动配置原理在resources/META-INF目录下添加spring.factories,在文件中写入被@Configuration修饰的配置类的全限定名,配置类内被@Bean修饰的方法返回的bean对象将交由spring托管

第三种是使用@Import注解导入,类似于import写入导入类的全限定名即可,在开发中使用较少

回到正题,IDEA可以通过注解旁的绿色小图标查看bean的供应关系,点击图标即可跳转到供方或者需方,这个功能在分析源码时还是很实用的

选中文件右键,然后选择Diagrams -> Show Diagram -> Spring Beans Dependencies 可以显示bean之间的关系图

题外话:ConfigServerMvcConfiguration配置类中有EnvironmentController类型的bean方法,ConfigServerAutoConfiguration配置类通过@import方法引入ConfigServerMvcConfiguration,config-server包的spring.factories文件中记录ConfigServerAutoConfiguration的全限定名,通过spring的自动化配置完成EnvironmentController的装载

http://www.lryc.cn/news/394528.html

相关文章:

  • 项目代码优化(1)——下单逻辑
  • 探索 WebKit 的缓存迷宫:深入理解其高效缓存机制
  • JVM:介绍
  • 和鲸“101”计划领航!和鲸科技携手北中医,共话医学+AI 实验室建设及创新人才培养
  • Linux 网络抓包工具tcpdump编译
  • 『C++成长记』string模拟实现
  • 【c++】C++ IO流
  • 解密智慧校园基础数据的学年管理功能
  • Python酷库之旅-第三方库Pandas(009)
  • VPN 的入门介绍
  • 移动UI: 什么特征会被认为是简洁风格,用案例告诉你
  • 除了伦敦外,英国还有这些热门留学城市
  • 2390. 从字符串中移除星号
  • UNION、UNION ALL、INTERSECT、MINUS
  • Perl 语言开发(九):深入探索Perl语言的文件处理
  • 稀疏之美:在Mojo模型中实现特征的稀疏表示
  • 如何大幅减少 Vue.js 中的包大小和加载时间,提升用户体验!
  • 性能测试相关理解---性能测试流程(二)
  • GD32 MCU ADC采样率如何计算?
  • .mkp勒索病毒:深度解析与防范
  • 5.opencv深浅拷贝
  • C++11中新特性介绍-之(二)
  • STM32实现看门狗(HAL库)
  • 【漏洞复现】网络摄像头——弱口令
  • 视觉图像面积计算
  • Vue笔记10-其它Composition API
  • AI集成工具平台一站式体验,零门槛使用国内外主流大模型
  • 北京交通大学学报
  • 【LinuxC语言】手撕Http之处理POST请求
  • 以软件定义推动智算中心建设