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

如何使spring应用程序基于命令行参数做不同的事情

狄鸿禧
2023-03-14

我希望我的spring应用程序根据它被调用的方式执行不同的操作。所以

Java-jar myapp.jar将运行webapp

Java-jar myapp.jar do-function1 arg1 arg2将执行某些功能并退出

Java-jar myapp.jar do-function2...

做这件事的正确方法是什么?

共有1个答案

谢旭
2023-03-14

spring提供了一个配置文件系统,可以让您这样做。因此,在运行jar文件时,只需添加以下JVM参数:-dspring.profiles.active=dev

要了解更多信息,您可以查看Baeldung的这篇教程,这篇教程做得很好,也可以参考spring的文档

 类似资料:
  • 我有几个不同的@Configuration类,每个类对应一个不同的Spring批处理作业,也就是说,每个配置中都有一个作业bean,给定作业所需的每个步骤、Tasklet等都存在于与该作业相同的配置类中。例子: 该应用程序是一个命令行应用程序。第一个参数是要运行的作业的名称。基于该参数检索关联的作业bean,然后使用JobLauncher执行。例子: 我想知道的是,如果args[0]是某个特定值,

  • 到目前为止,我发现了两种在启动时配置spring boot应用程序的方法,一种使用< code>-D,另一种使用< code> - ,如下所示: 有时,第一个有效,有时第二个有效。正如开发人员所发现的那样,当以下示例中的 方法未给出 参数时,方法不起作用,但 起作用。 而今天,我在命令行配置日志,发现 但 工作。 以上可能有其他原因,可能< code > log back . configurat

  • 我已经用spring cloud任务创建了Spring Boot应用程序,它应该执行一些命令(任务)。每个任务/命令都是短命任务,所有任务都是从命令行启动,做一些短命的ETL作业并完成执行。 有一个包含所有命令/任务的spring boot jar。每个任务都是CommandLineRunner,我喜欢根据来自命令行的参数来决定将执行哪些任务(一个或多个)。这样做的最佳做法是什么?我不喜欢有肮脏代

  • 问题内容: 我的应用程序有一个JNLP软件包。现在,我需要将命令行参数传递给我的应用程序。如何扩展我的JNLP文件以列出命令行参数? 例如,我需要说和,并且需要在JNLP文件中提及。 问题答案: 请查看元素说明以获取元素的更多详细信息。 所述元素指示JNLP文件被启动应用(而不是小应用程序)。.. 可以通过包含一个或多个嵌套元素来为应用程序指定参数。 例如:

  • 我有一个JNLP软件包用于我的应用程序。现在我需要将命令行参数传递给我的应用程序。如何扩展JNLP文件以列出命令行参数? 例如,我需要说和和是JNLP文件的一部分。

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