簡體   English   中英

無論如何從所有spring bean注釋獲得“Effective Spring Config”?

[英]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插件導航它們,如下所示:

導航Spring配置

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM