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

如何将spring boot应用程序同时作为web应用程序和命令行应用程序运行?

颛孙霖
2023-03-14

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

  • 主类-SpringApplication
  • CommandLineRunner

共有1个答案

司徒嘉祥
2023-03-14

CommandLineRunner接口提供了一种有用的方法,可以在应用程序启动后提取命令行参数,但它无助于改变应用程序的性质。您可能已经发现,应用程序可能不会退出,因为它认为需要处理传入的web请求。

在我看来,你在主要方法中采取的方法是明智的。您需要告诉Spring Boot它不是一个web应用程序,因此,一旦它启动,就不应该一直在监听传入的请求。

我会做这样的事情:

public static void main(String[] args) {
    SpringApplication application = new SpringApplication(AutoDbServiceApplication.class);
    application.setWeb(ObjectUtils.isEmpty(args);
    application.run(args);
}
@Component
public class AutoDbApplicationRunner implements ApplicationRunner {

    public void run(ApplicationArguments args) {
        if (ObjectUtils.isEmpty(args.getSourceArgs)) {
            return; // Regular web application
        }
        // Do something with the args.
        if (args.containsOption(“foo”)) {
            // …
        }
    }

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

  • 我试图在SpringMVC中运行SpringBoot应用程序,在SpringMVCPOM中添加SpringBoot应用程序依赖项,并扫描SpringBoot包,但我面临以下问题

  • 我使用maven-archetype-webapp编写了一个核心java web应用程序,并尝试在基于azure windows的webapp中部署jar文件和web.config,但无法访问url。我的应用程序中只有主页。并遵循以下步骤。我可以在我的本地系统中运行它,并且可以看到主页。 azure-webapp-maven-plugin add in POM 和 build 与 mvn azur

  • 本地angular应用程序在-http://localhost:4200/alerts;alerttype=renewals;cor=411119上成功运行 到目前为止,我已经将angular dist文件夹复制到遗留应用程序的webcontent文件夹中,并运行应用程序,如下所示 http://localhost:9086/customer/eWeb/alertapp/alerts;alertt

  • 问题内容: 我想使用html applet标记在我的Web应用程序中运行简单applet,但是它给出了类似的错误 java.lang.ClassNotFoundException:MyApplet 请给我示例应用程序,如果可能的话..... 问题答案: 问题是applet引擎在您定义的代码库中找不到MyApplet类。 这是因为您在/ WEB-INF / classes目录中进行了分类。该目录受s