【发布时间】:2015-11-11 17:18:04
【问题描述】:
我正在编写一个 Spring Boot 应用程序,它使用几个 @Configuration 类之一,具体取决于 application.properties 文件中设置的 @Profile。
其中一个配置类使用 REST 接口,因此我将 spring-boot-starter-web 作为依赖项。
这会启动一个嵌入式 Tomcat 实例,这很好。
问题是,其他配置文件不需要嵌入式服务器(例如,我使用 JMS 来处理传入消息而不是 REST)。
有什么方法可以阻止@SpringBootApplication 默认启动Tomcat,并且只将它用于REST 配置类?
例如,通过使用 @EnableWebMVC 注释该类
这是我的@Configurationclasses 示例:
休息:
@Profile({"REST"})
@Configuration
@EnableWebMvc
public class HttpConfiguration{
.
.
.
}
JMS:
@Profile({"JMS"})
@Configuration
@EnableJms
public class JMSConfiguration{
.
.
.
}
谢谢
【问题讨论】:
-
为 JMS 配置文件尝试
@SpringBootApplication(exclude={EmbeddedServletContainerFactory.class})。这应该排除 Embedded Servlet 容器的自动配置
标签: spring spring-mvc tomcat spring-boot