自学内容网 自学内容网

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

前因:研究springcloud config组件时,我发现config-server包下的EnvironmentController可以响应客户端的请求,奇怪的是EnvironmentController并不在spring扫描的包路径下,所以我推测它是作为某个@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的装载


原文地址:https://blog.csdn.net/qq_45797138/article/details/139970500

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!