[英]Is there anyway to get “Effective Spring Config” from all spring beans annotations?
我喜歡用於bean聲明等的注釋。但是現在我們有很多帶有順序的bean(@Depends)。 維護或查看配置很難。
是否有任何工具可以根據您的所有bean注釋提供“Effective Spring Config”信息?
答:您不應該使用那么多@DependsOn
注釋。
來自javadoc:
在bean沒有通過屬性或構造函數參數顯式依賴於另一個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將在MovieClient
bean 之前進行實例化,只是因為movieClient bean 在構造函數中請求它 。 在這樣的情況下,您不需要任何@DependsOn
注釋。
編輯 :正如OP評論的那樣,仍然存在顯示“有效彈簧配置”的問題。
我認為沒有任何工具,因為您的依賴關系可能會在運行時更改(因為自動配置, @Conditional
注釋,配置文件,其他?)。
如果您需要知道“Effective Spring Config”(即“運行時存在哪些bean”),您可以這樣做:
ConfigurableApplicationContest context;
context = SpringApplication.run(Application.class, finalArgs);
// Print all the beans:
System.out.println(context.getBeanDefinitionNames());
但是,如果你的意思是如何查看和導航所有配置 ,你可以在不同的@Configuration
文件中組織bean,使用@ComponentScan
選擇它們,並使用Eclipse的Spring IDE插件導航它們,如下所示:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.