2017-09-25 100 views
3

我有一個java項目,其中存在許多.xml文件。如何檢測在XML中配置的未使用的彈簧bean?

所有這些xml文件都包含許多bean。

測試未使用的爲:

  • 被定義但從未注入一個bean。
  • 注入的bean,但從未在代碼中調用。
  • 一個已定義但未加載到Spring上下文中的bean。

問題

  • 如何識別哪個bean用不用?
  • 是否有工具可以做到這一點?
+0

https://stackoverflow.com/questions/98320/does-having-many-unused-beans-in-a-spring-bean-context-waste-significant-resourc –

+0

是什麼讓bean'used'? – Oleg

+0

- 定義但未注入的bean。 - 注入但在代碼中永遠不會調用的bean。 - 定義但從未加載到Spring上下文中的bean。 –

回答

3

沒有用於檢測xml文件中未使用springbeans的工具。您可以使用Spring Tools Suite進行檢測。但檢查時間過長。

0

我認爲您可以使用彈簧執行器來檢查相反的問題 - 哪些bean已經加載到您的上下文中。

https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-endpoints.html

器終端可以監控,並與您的 應用程序進行交互。 Spring Boot包含許多內置端點,您還可以添加自己的端點。例如,運行狀況端點提供了 基本應用程序運行狀況信息。

端點的暴露方式取決於您選擇的 技術的類型。大多數應用程序選擇HTTP監視, 其中端點的ID映射到URL。例如,默認 ,health端點將映射到/health

beans顯示應用程序中所有Spring bean的完整列表。

尋找所有未使用的bean需要掃描應用程序中的XML文件,然後您可以將其與執行程序生成的bean列表進行比較。