我喜歡用於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