【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的装载

相关推荐

  1. SpringBean初始化与销毁

    2024-07-11 21:30:06       54 阅读
  2. 谈软件模块间依赖关系

    2024-07-11 21:30:06       32 阅读
  3. Android查看SO库依赖

    2024-07-11 21:30:06       27 阅读
  4. springBean三种实例化

    2024-07-11 21:30:06       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 21:30:06       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 21:30:06       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 21:30:06       58 阅读
  4. Python语言-面向对象

    2024-07-11 21:30:06       69 阅读

热门阅读

  1. 常用的简单的ps快捷键

    2024-07-11 21:30:06       20 阅读
  2. Bug汇总

    2024-07-11 21:30:06       21 阅读
  3. LVS集群(二)

    2024-07-11 21:30:06       23 阅读
  4. vscode连接unbuntu失败,显示Downloading vs code server...

    2024-07-11 21:30:06       20 阅读
  5. Memcached介绍和详解

    2024-07-11 21:30:06       20 阅读
  6. Qt常用基础控件总结—表格控件(QTableWidget类)

    2024-07-11 21:30:06       23 阅读
  7. pudb: Python的图形化调试器

    2024-07-11 21:30:06       25 阅读
  8. 派森学长带你学python—字符串

    2024-07-11 21:30:06       21 阅读
  9. DP学习——设计模式怎么来的?

    2024-07-11 21:30:06       18 阅读
  10. 7.10飞书一面

    2024-07-11 21:30:06       18 阅读
  11. wpf 不同 DataContext 之间的通讯

    2024-07-11 21:30:06       21 阅读
  12. 状态同步和帧同步原理细节

    2024-07-11 21:30:06       22 阅读
  13. easy-poi实现动态列(标题)、多sheet导出excel

    2024-07-11 21:30:06       23 阅读
  14. null empty

    2024-07-11 21:30:06       17 阅读
  15. C++反射的实现方式

    2024-07-11 21:30:06       21 阅读