当前位置: 首页 > 知识库问答 >
问题:

Spring Boot启用/禁用带有配置文件的嵌入式tomcat

范修伟
2023-03-14

这将启动一个嵌入式Tomcat实例,这很好。

问题是,其他配置文件不需要嵌入式服务器(例如,我使用JMS来处理传入的消息,而不是REST)。

有什么方法可以阻止@springbootapplication在默认情况下启动Tomcat,并且只在REST配置类中使用它?例如,通过使用@enableWebMVC注释该类

@Profile({"REST"})
@Configuration
@EnableWebMvc
public class HttpConfiguration{
 .
 .
 .
}
@Profile({"JMS"})
@Configuration
@EnableJms
public class JMSConfiguration{
 .
 .
 .
}

谢谢

共有1个答案

洪浩
2023-03-14

使用

@SpringBootApplication(exclude = {EmbeddedServletContainerAutoConfiguration.class, 
                                  WebMvcAutoConfiguration.class})

排除Spring Boot对嵌入式servlet容器的自动配置。此外,您需要为非REST情况设置以下属性,以便Spring Boot不会尝试启动WebApplicationContext(需要servlet容器):

spring.main.web-environment=false

然后通过导入EmbeddedServletContainerAutoConfiguration.class在REST配置文件中启用嵌入式Tomcat(这会将自动配置延迟到REST配置文件加载之后:

@Profile({"REST"})
@Configuration
@Import(EmbeddedServletContainerAutoConfiguration.class)
public class HttpConfiguration {
    // ...
}
 类似资料:
  • 英文原文:http://emberjs.com/guides/configuring-ember/embedding-applications/ 大多数情况下,应用所有的UI都将通过路由器管理的模板来创建。 但是如果需要将一个Ember.js应用嵌入一个现有的网页,与其他的Javascript框架共存应该怎么做呢? 改变根元素 缺省情况下,应用将渲染应用模板到网页的body元素中。 通过指定roo

  • 我正在尝试配置我的应用程序上下文,以便能够在我的应用程序中使用带有嵌入式图形的Neo4j服务器,但没有多大成功。我同时使用Spring数据(Mongo和Neo4j存储库方法)。这是我的应用程序上下文,未运行: 如果我不使用这种方法,只指定存储目录(注释行),那么一切都可以正常运行。我怀疑这是SDN和neo4j服务器之间的版本问题。这是我的POM: 它的父项作为依赖项Spring(核心、上下文、测试

  • 我有时会在pom中看到以下声明。xml。。。 如您所见,sping-boo-starter-web被声明为tomcat-embed-jasper。 是不是sping-boo-starter-web已经有一个嵌入式tomcat了?为什么一些开发人员仍然声明tomcat-embed-jasper以及boot-starter-web?还是有什么原因?

  • 问题内容: 有人可以告诉我如何使用Java为我的客户firefox配置文件禁用插件吗?我发现有几个网站显示要添加加载项,但是关于禁用插件一无所获。 我的Firefox配置文件: 问题是默认情况下启用了某些插件。Adobe Acrobat,Google Update,Java,Microsoft Office,Flash,Director和Silverlight的Shockwave。 我需要禁用其中

  • 问题内容: 有人可以告诉我如何使用Java为我的客户firefox配置文件禁用插件吗?我发现有几个网站显示要添加加载项,但是关于禁用插件一无所获。 我的Firefox配置文件: 问题是默认情况下启用了某些插件。Adobe Acrobat,Google Update,Java,Microsoft Office,Flash,Director和Silverlight的Shockwave。 我需要禁用其中

  • 我现在的问题是,如果我想完全禁用FileAppender,我不知道怎么做。如果我向FileAppender添加一个DenyAllFilter,它将阻止任何内容写入文件,但文件仍然被创建。如果从根记录器中删除FileAppender,则将Log4J写入stderr: 如果我将根级别设置为OFF,则我将自定义调试级别设置为仍然输出的各个记录器。 如果我将LoggerRepository级别设置为OFF