Ich versuche zu vermeiden, Komponenten-Scan, um die Startzeit in unseren Modultests und in unserer Web-App im Allgemeinen zu reduzieren.Wie starte ich eine Spring Boot Web Application ohne ComponentScan
Wenn ich @SpringBootApplication
mit @SpringBootConfiguration @EnableAutoConfiguration
ersetzen, erhalte ich die folgende Fehlermeldung:
Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean
Kann ich manuell die EmbeddedServletContainerFactory
irgendwie importieren?
Ja, Sie können die Konfiguration innerhalb des Codes (die mit Anmerkungen versehene Konfiguration) "replizieren", selbst wenn der Code eine Bibliothek eines Drittanbieters ist. Eigentlich ist es nützlich, wenn Sie die Konfiguration aus irgendeinem Grund überschreiben müssen. In meinen Tests ist der Unterschied zwischen der Verwendung von Komponentenscan oder nicht minimal. Ich würde es vermeiden. – rdllopes
Werfen Sie einen Blick auf 'org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration'. So erstellt Spring-Boot eine EmbeddedServletContainerFactory. Ich kann nicht sagen, warum Sie keine in Ihrem Test ohne weitere Informationen haben (versuchen Sie, die Bedingungen zu debuggen, wenn Sie wissen wollen, warum), aber wenn Sie Ihre eigene Fabrik registrieren möchten, kopieren Sie einfach die entsprechende EmbeddedServletContainerFactory 'Bean-Konfiguration von' EmbeddedServletContainerAutoConfiguration'. – Pieter