如何在不使用ComponentScan的情况下启动Spring Boot Web应用程序

时间:2016-08-01 08:09:24

标签: java spring spring-boot war component-scan

我正在尝试避免组件扫描,以减少模块测试和我们的Web应用程序中的启动时间。

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

  

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

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

2 个答案:

答案 0 :(得分:3)

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

或者,您可以查看每个配置类,看看Spring Boot为您配置的内容,并决定是否要提供自己的配置 - 您可以模仿自动配置类,一切都应该以相同的方式工作

答案 1 :(得分:2)

MilošPieter提供了找到答案的方法。可以使用以下命令启动最小的Spring Boot Web应用程序:

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

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