我試圖避免使用組件掃描來減少我們的模塊測試以及我們的Web應用程序中的啓動時間。如何在不使用ComponentScan的情況下啓動Spring Boot Web應用程序
當我更換@SpringBootApplication
與@SpringBootConfiguration @EnableAutoConfiguration
,我得到以下錯誤:
Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean
我可以手動導入EmbeddedServletContainerFactory
不知何故?
是的,即使代碼是第三方庫,您也可以「複製」代碼內的配置(註釋配置)。實際上,當您因任何原因必須覆蓋配置時,它非常有用。在我的測試中,使用組件掃描或不使用的差異很小。我會避免它。 – rdllopes
看看'org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration'。這就是spring-boot如何創建一個'EmbeddedServletContainerFactory'。如果沒有更多的信息,我不能說你爲什麼在測試中沒有一個(如果你想知道原因,請嘗試調試條件),但是如果你想註冊你自己的工廠,只需複製適當的'EmbeddedServletContainerFactory 'EmbeddedServletContainerAutoConfiguration'中的bean配置。 – Pieter