如何避免 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);
}
我有一个 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);
}