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

如何关闭Spring Boot命令行应用程序

鲁阳焱
2023-03-14

我正在使用Spring Boot构建一个命令行java应用程序,以使其快速工作。

应用程序加载不同类型的文件(例如CSV)并将它们加载到Cassandra数据库中。它不使用任何web组件,它不是web应用程序。

@Component
public class OneTimeRunner implements CommandLineRunner {

    @Autowired
    private CassandraOperations cassandra;

    @Autowired
    private ConfigurableApplicationContext context;

    @Override
    public void run(String... args) throws Exception {
        // do some work here and then quit
        context.close();
    }
}

共有1个答案

山阳辉
2023-03-14

答案取决于它是什么仍然在起作用。您可以通过线程转储(例如使用jstack)找到答案。但是,如果是由Spring启动的应用程序,您应该能够使用ConfigurableApplicationContext.Close()在main()方法(或CommandLineRunner)中停止应用程序。

 类似资料:
  • 我曾试图关闭android应用程序使用adb命令和appium服务器,但它是最小化应用程序,而不是关闭。我用下面的命令关闭。 adb shell am force-stop com.package.name 如果我尝试这个命令杀死进程,它会说,

  • 问题内容: 我正在尝试从redis- cli关闭我的redis服务器。每当我从客户端发出命令时,都会收到错误“(错误)需要NOAUTH身份验证”。我已经尝试过命令“关闭”和“关闭未保存”。 我也尝试从另一个终端窗口尝试“ redis-server stop”,但收到错误“#致命错误,无法打开配置文件’stop’” 如何关闭该服务器?(我在OSX上)。 问题答案: 您的Redis服务器显然已配置了密

  • 我有一个部分扎根的Android设备。所谓部分root,是指我只能通过ADB运行root命令。我已经想出了如何在设备本身的终端模拟器中本地运行这些命令。我的问题是,我将如何着手编写Android应用程序的代码,从按钮按钮执行一个ADB命令(或多个命令)?我找不到任何解释如何通过应用程序界面运行直接ADB命令的东西。只是为了澄清,任何涉及“su”的东西都不会在这个设备上工作。它只接受ADB输入进行根

  • 问题内容: 在Swing中,您可以简单地用于在关闭窗口时关闭整个应用程序。 但是,在JavaFX中找不到等效项。我有多个打开的窗口,如果一个窗口关闭,我想关闭整个应用程序。用JavaFX做到这一点的方法是什么? 编辑: 我了解可以覆盖以在窗口关闭时执行一些操作。问题是应该执行什么操作才能终止整个应用程序? 类中定义的方法不执行任何操作。 问题答案: 当最后一个关闭时,应用程序自动停止。目前,您的类

  • 我有一个主(屏幕)gui窗口,需要打开几个“多输入”窗口(jdialog或当不可能使用jframe时),例如添加首选项(4个文本字段,带有2个文件选择器和2个单选按钮)。在这些JDialogs(或JFrames)中按OK/Cancel时,我的整个应用程序将关闭。我不想那样。我该怎么防止呢? 第一次尝试:我尝试了intelliJ选项“新- 第二次尝试:我“手工”编写了一个类,创建了一个JDialog

  • 我有一个SpringBoot应用程序。项目外部的属性文件(通常不在src/main/resources中)。在使用gradle clean build构建应用程序时,由于代码无法找到属性文件,因此会失败。我尝试了许多命令来传递vm参数,gradle选择了这些参数,但都不起作用。 它在测试阶段失败,因为它创建了Spring应用程序上下文,并且无法替换属性占位符。如果我跳过测试作为gradle cle