java-从所有spring bean批注中获取“ Effective Spring Config”有效吗?
作者:互联网
我喜欢用于bean声明等的批注.但是现在我们有很多带顺序的bean(@Depends).很难维护或一目了然地配置.
是否有任何工具可根据您的所有bean注释提供“有效的Spring Config”信息?
解决方法:
答:您不应使用那么多的@DependsOn批注.
从javadoc:
Used infrequently in cases where a bean
does not explicitly depend on another through properties or
constructor arguments, but rather depends on the side effects of
another bean’s initialization.
您可以这样做:
@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注释.
编辑:正如OP所评论的那样,仍然存在显示“ Effective Spring Config”的问题.
我认为没有任何工具可以使用,因为您的依赖项可能会在运行时发生变化(由于AutoConfiguration,@ Conditional批注,配置文件等).
如果您需要了解“有效的Spring配置”(即“运行时存在什么bean”),则可以执行以下操作:
ConfigurableApplicationContest context;
context = SpringApplication.run(Application.class, finalArgs);
// Print all the beans:
System.out.println(context.getBeanDefinitionNames());
但是,如果您要表示如何查看和导航所有配置,则可以将bean组织在不同的@Configuration文件中,使用@ComponentScan进行拾取,并使用适用于Eclipse的Spring IDE插件进行导航,如下所示:
标签:spring-4,spring,java 来源: https://codeday.me/bug/20191119/2037193.html