Spring Boot非Web应用程序,启动时出现以下错误
Caused by: org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.getEmbeddedServletContainerFactory(EmbeddedWebApplicationContext.java:185) ~[spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE]
然后我尝试了以下方式
new SpringApplication().setWebEnvironment(false);
然后启动它仍然有上述错误。
然后试了
@SpringBootApplication(exclude={SpringDataWebAutoConfiguration.class})
但仍然有同样的错误。
最后我尝试在 application.properties
中添加以下配置
spring.main.web-environment=false
这次它起作用了。
为什么前两种方式行不通?
原文由 zhuguowei 发布,翻译遵循 CC BY-SA 4.0 许可协议
这个答案已经过时了。请注意 Spring Boot 2.0 的另一个答案
Spring Boot 1.x 的原始答案:
此配置不起作用的原因是因为这是两个不同的实例:
You are disabling
setWebEnvironment(false)
innew SpringApplication()
object and calling static methodrun()
onSpringApplication.run(...)
which is different one.我想出了3种方法来做到这一点:
这是完整的工作 项目。
而且您不需要排除以下配置:
因为您的 --- 中没有
spring-boot-starter-web
依赖pom.xml