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

以两种模式运行一个Spring应用程序-作为CommandLineRunner和SpringBootServletInitializer类型

狄德泽
2023-03-14
  1. 作为命令行应用程序(不带Tomcat)作为CommandLineRunner
  2. 作为SpringBootServletInitializer独立Tomcat的REST API应用程序。

问题:有可能吗?如何实现此设置?

共有1个答案

司空兴为
2023-03-14

我觉得问题有一个矛盾:

如果您使用SpringBootServletInitializer,那么该工件应该被打包为WAR,并部署在诸如Tomcat之类的Web服务器上。本例中没有嵌入Tomcat。

如果你想要一个嵌入式的Tomcat,那么你就不需要WAR,你应该使用一个“通常的”jar类型的Spring Boot应用工件。

根据OP的评论:

所以,目标是能够运行:

java -jar myapp.war

以仅运行CommandLineRunner而不加载真正tomcat的方式

 类似资料:
  • 我有一个Spring reactive示例应用程序,它是从Spring Webflux文档中提供的一个示例修改而来的。该应用程序的分支以传统方式使用Spring Boot,并带有嵌入式应用服务器(Netty)。它工作得很好。 在Liberty分支中,我试图将应用程序构建为WAR,并将其部署到Websphere Liberty Profile。除了对构建过程的更改之外,最重要的代码更改是让我的(此处

  • 目前,我正在尝试使用和来运行Spring Boot应用程序,在默认情况下作为web应用程序运行,在需要时作为独立的命令行应用程序运行(通过某种命令行参数)。我正在努力弄清楚当提供程序参数时,如何单独将其作为控制台应用程序运行。请给出任何建议。 主类-SpringApplication CommandLineRunner

  • 我试图通过mvn GWT:run-codeserver用maven在超级开发模式下运行GWT应用程序。这个插件给了我一个localhost页面,作为建议,我将上,然后访问页面中提供的链接。 然后我单击书签栏上上的

  • 我正在尝试将Microsoft Team BOT作为Azure Web应用程序运行-可以在此处找到完整的代码 application.py: 在本地运行时,我可以将端口设置为8000,例如,将ngrok指向localhost,并在我的bot通道注册中指定url,一切正常。我一直在努力让我的代码在Azure中工作,但我就是无法做到这一点。我已将脚本配置为在端口8000上运行,并在应用程序设置中设置参

  • 我有两个spring boot应用程序。 模块1在端口8080上运行 模块2在端口9090上运行 我已在应用程序中使用此属性设置端口。属性文件 这两个模块都有/登录/注册,无需通过下面的代码进行身份验证即可访问。 任何其他请求都需要对用户进行身份验证。 如果我一次使用一个模块没有问题, 但是如果尝试同时来回使用它们,那么问题是我每次使用另一个应用程序时都必须再次登录到之前的应用程序。例如。 转到模

  • 我有两个应用程序:同事和服务,每个都有自己的模型 在coworkers models.py中,我可以“从services.models导入服务”。 当我尝试在services models.py中“from coworkers.models import Status”时,会收到以下错误消息: 回溯(最近一次调用):文件“/Users/lucas/Documents/projetos/cwk-ma