我喜欢用于bean声明等的注解。但是现在我们有很多带有顺序(@Depends)的bean。这使得配置难以维护或一目了然。
是否有任何工具可以根据您所有bean注解提供“有效的Spring配置”信息?
@Configuration
public class MyConfig {
@Bean
public MovieClient movieClient(RestOperations rest) {
return new MovieClientImpl(rest);
}
@Bean
public RestOperations restOps() {
return new RestTemplate();
}
}
RestOperations
bean 将在 MovieClient
bean 之前被实例化,因为 movieClient bean 在构造函数中要求它。像这样的情况不需要任何 @DependsOn
注释。
编辑:正如楼主所评论的,仍然存在显示“有效Spring配置”的问题。
我不认为有任何工具可以解决这个问题,因为您的依赖关系可能会在运行时更改(由于自动配置、@Conditional
注释、配置文件、其他原因?)。
如果您需要知道您的“有效Spring配置”(即“运行时存在哪些bean”),可以执行以下操作:
ConfigurableApplicationContest context;
context = SpringApplication.run(Application.class, finalArgs);
// Print all the beans:
System.out.println(context.getBeanDefinitionNames());
然而,如果你的意思是如何查看和导航所有配置,你可以将你的bean组织在不同的@Configuration
文件中,使用@ComponentScan
获取它们,并使用Spring IDE插件来导航它们,就像这样:
MongoConfiguration
类、MvcConfiguration
类等。然后,一个单一的ComponentScan
注释将加载它们所有(甚至解决相互依赖)。就这么简单 ;) - ESala