bar*_*com 23 spring tomcat spring-mvc spring-boot
我正在编写一个Spring Boot应用程序,该应用程序使用几个@Configuration类中的一个,具体取决于文件中@Profile设置的类application.properties.
其中一个Configuration类使用REST接口,因此我将其spring-boot-starter-web作为依赖项包含在内.
这启动了一个嵌入式Tomcat实例,这很好.
问题是,其他配置文件不需要嵌入式服务器(例如,我使用JMS来处理传入的消息而不是REST).
有没有办法在@SpringBootApplication默认情况下阻止启动Tomcat,并且只将它用于REST配置类?例如,通过注释该类@EnableWebMVC
这是我的@Configuration课程的一个例子:
休息:
@Profile({"REST"})
@Configuration
@EnableWebMvc
public class HttpConfiguration{
.
.
.
}
Run Code Online (Sandbox Code Playgroud)
JMS:
@Profile({"JMS"})
@Configuration
@EnableJms
public class JMSConfiguration{
.
.
.
}
Run Code Online (Sandbox Code Playgroud)
谢谢
hzp*_*zpz 31
使用
@SpringBootApplication(exclude = {EmbeddedServletContainerAutoConfiguration.class,
WebMvcAutoConfiguration.class})
Run Code Online (Sandbox Code Playgroud)
排除Spring Boot的嵌入式servlet容器的自动配置.此外,您需要为非REST情况设置以下属性,以便Spring Boot不会尝试启动WebApplicationContext(需要servlet容器):
spring.main.web-environment=false
Run Code Online (Sandbox Code Playgroud)
然后通过导入在REST配置文件中启用嵌入式Tomcat EmbeddedServletContainerAutoConfiguration.class(这会延迟自动配置,直到加载REST配置文件之后:
@Profile({"REST"})
@Configuration
@Import(EmbeddedServletContainerAutoConfiguration.class)
public class HttpConfiguration {
// ...
}
Run Code Online (Sandbox Code Playgroud)
如果您使用任何EmbeddedServletContainerCustomizers,您还需要导入EmbeddedServletContainerCustomizerBeanPostProcessorRegistrar.class.
bar*_*com 17
来自@hzpz和@orid的答案让我走上正轨.
我需要补充一下
@SpringBootApplication(exclude = {EmbeddedServletContainerAutoConfiguration.class,
WebMvcAutoConfiguration.class})
Run Code Online (Sandbox Code Playgroud)
并设置:
spring.main.web-environment=false
Run Code Online (Sandbox Code Playgroud)
在我的application.properties文件中为非Rest案例.
frn*_*rno 14
从Spring Boot 2.0开始,只有spring.main.web-application-type=none在相关的配置文件中才能做到这一点.
如果您使用application.yml带有Spring Boot 2.0 的多文档,则添加此块并替换no-web-profile-name不应具有嵌入式Web服务器的配置文件应该可以正常工作:
---
spring:
profiles: no-web-profile-name
main:
web-application-type: none
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27652 次 |
| 最近记录: |