合肥个人做网站,机械加工网站哪个好,网站安全建设工作总结,影视文化网站建设前因#xff1a;研究springcloud config组件时#xff0c;我发现config-server包下的EnvironmentController不在扫描的包路径下却可以响应客户端的请求#xff0c;这引起了我的注意#xff0c;我的问题是#xff1a;EnvironmentController是怎么被添加进bean工厂的。本章就…前因研究springcloud config组件时我发现config-server包下的EnvironmentController不在扫描的包路径下却可以响应客户端的请求这引起了我的注意我的问题是EnvironmentController是怎么被添加进bean工厂的。本章就是分享我在查找bean依赖关系总结的一点小技巧 通常来讲让bean加入spring的管理有3种方法
第一种是使用扫描组件ComponentScan和Component注解也是开发中最常见的做法。springboot应用启动时会扫描ComponentScan的basePackages属性指定的包路径下的类文件将路径下用组件注解ComponentControllerService修饰的类加入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方法引入ConfigServerMvcConfigurationconfig-server包的spring.factories文件中记录ConfigServerAutoConfiguration的全限定名通过spring的自动化配置完成EnvironmentController的装载