我正在尝试将现有的spring应用程序转换为spring boot应用程序。这个应用程序不是一个Web应用程序,但在它的maven依赖层次结构深处它包含一个spring-web jar,因此spring-boot尝试自动配置WebEnvironment并反过来抱怨没有找到EmbeddedServletContainerFactory。但这是因为我使用的是spring-boot-starter而不是spring-boot-starter-web。
我的任务是:如何防止spring-boot自动发现类路径中的Web特定项?我已经尝试了像
这样的东西@EnableAutoConfiguration(exclude = { EmbeddedServletContainerAutoConfiguration.class })
但它似乎不起作用。调试启动过程我发现它遇到了一个名为deduceWebEnvironment()的方法,它被无条件地调用。只要以下类在类路径上,此方法就返回true:
javax.servlet.Servlet, org.springframework.web.context.ConfigurableWebApplicationContext
但是,即使这些类存在于cp中,我也不想启动Web应用程序。
答案 0 :(得分:0)
尝试new SpringApplicationBuilder(YourApp.class).setWebEnvironment(false).run(args)
您还可以通过application.properties
spring.main.web-environment=false