我喜欢用于bean声明等的注释。但是现在我们有很多订单(@Depends)的bean。维护或查看配置很难。有没有办法从所有Spring beans注释中获得“Effective Spring Config”?
有没有提供基于所有bean注释的“Effective Spring Config”信息的工具?
我喜欢用于bean声明等的注释。但是现在我们有很多订单(@Depends)的bean。维护或查看配置很难。有没有办法从所有Spring beans注释中获得“Effective Spring Config”?
有没有提供基于所有bean注释的“Effective Spring Config”信息的工具?
答:你不应该使用那么多的@DependsOn
注解。
根据JavaDoc:
在一个bean 没有明确依赖于另一个通过属性或 构造函数的参数,而是要看 另一个bean的初始化的副作用的病例很少使用。
你可以只是这样做:
@Configuration
public class MyConfig {
@Bean
public MovieClient movieClient(RestOperations rest) {
return new MovieClientImpl(rest);
}
@Bean
public RestOperations restOps() {
return new RestTemplate();
}
}
在这个例子中,RestOperations
bean将前instantiaded 的MovieClient
豆,只是因为movieClient豆在构造函数中需要它。在这种情况下,您不需要任何@DependsOn
注解。
编辑:作为OP评论,还有显示 “有效Spring配置” 的问题。
我不认为有任何工具,因为您的依赖关系可能会在运行时更改(由于AutoConfiguration,@Conditional
注释,配置文件,其他?)。
如果你需要知道你的“有效Spring配置”(即“什么豆在运行时出现”),你可以这样做:
ConfigurableApplicationContest context;
context = SpringApplication.run(Application.class, finalArgs);
// Print all the beans:
System.out.println(context.getBeanDefinitionNames());
但是,如果你的意思是你怎么能查看和浏览所有的配置,你可以组织豆类在不同@Configuration
的文件,它们捡起来使用@ComponentScan
,并使用Spring IDE pluguin Eclipse的浏览他们,就像这样:
我建议你将此词改写为合适的问题。 FE,“如何根据我所有的bean注释获取”Effective Spring Config“信息?”这可能是一个非常有用的帖子,当不要求一个工具。 – ChiefTwoPencils