如何避免 Spring Boot 加载 EmbeddedWebApplicationContext?

How can I avoid Spring Boot from loading EmbeddedWebApplicationContext?

我有一个 Spring 带有 Camel-HTTP 的引导集成应用程序。由于 Camel-HTTP 依赖于 geronimo-servlet Spring Boot 正在尝试加载 Web 应用程序上下文。

如何强制 Spring 不加载 EmbeddedWebApplicationContext

我试图用 @EnableAutoConfiguration(exclude = ...) 注释排除在 org.springframework.boot.autoconfigure.web 中找到的所有自动配置 类。

您可以尝试使用 @ContextConfiguration 注释:

@ContextConfiguration(loader = SpringApplicationCtxtLoader.class, classes = annotatedClass.class)

annotatedClass.class 是 class 即 annotated,例如:@Component@Service@Repository

this 回答中,这是用于测试目的的建议方法,但我认为它可能对您有所帮助

您可以使用 SpringApplicationBuilder class 来明确禁用加载网络环境和上下文, 即在你的主要 class:

public static void main(String[] args) {
    new SpringApplicationBuilder(MainConfig.class).web(false).run(args);
}