4

我试图避免组件扫描,以减少我们的模块测试和一般网络应用程序的启动时间。

当我替换@SpringBootApplication为 时@SpringBootConfiguration @EnableAutoConfiguration,出现以下错误:

由于缺少 EmbeddedServletContainerFactory bean,无法启动 EmbeddedWebApplicationContext

我可以以EmbeddedServletContainerFactory某种方式手动导入吗?

4

2 回答 2

3

我的建议是首先打开调试标志运行您的应用程序,然后记下所有激活的自动配置。然后,禁用自动配置并通过@Import在您的应用程序类上使用来导入这些配置。

或者,您可以查看每个配置类,看看 Spring Boot 为您配置了什么,然后决定是否要提供自己的配置——您可以模仿自动配置类,一切都应该以相同的方式工作。

于 2016-08-01T08:58:46.557 回答
2

米洛什彼得提供了找到答案的方法。一个最小的 Spring Boot Web 应用程序可以通过以下方式启动:

@SpringBootConfiguration
@Import({EmbeddedServletContainerAutoConfiguration.class})
public class Application extends SpringBootServletInitializer {
   ...
}

ServerPropertiesAutoConfiguration.class获取应用程序的端口号等内容可能也很方便。

于 2016-08-02T13:48:46.560 回答