SpringBoot项目自定义命令行参数

有时我们的项目需要做一些灵活的配置以适应不同的运行环境,常用的方式是通过命令行输入参数控制程序的运行逻辑,SpringBoot项目如何实现接收自定义命令行参数呢?

命令行参数格式

我们以IDEA为例,首先在IDEA中设置程序的运行参数,在IDEA中点击右上角的运行配置信息框的小箭头,选择Edit Configurations。

在信息配置页面中,在Environment下的Program arguments中输入命令行参数,这里可以输入任意的自定义配置信息。

配置信息的输入格式如下:双减号+参数名+=+参数值,多个参数值用空格分隔。

--state=1

启动类接收命令行参数

在启动类的main函数中有一个args参数,这里存放的就是输入的命令行参数。我们通过打印该参数的信息,验证一下。

@SpringBootApplication
public class SsmpApplication {

    public static void main(String[] args) {
        for(String s : args){
            System.out.println(s);
        }
        SpringApplication.run(SsmpApplication.class, args);
    }

}

启动SpringBoot项目,能看到控制台打印了我们设置的命令行参数。

通过args参数我们就能读取到命令行输入的参数,来进行程序逻辑的选择控制。

这种方式不仅能用来接受自定义参数,还可以接受SpringBoot的默认参数配置,通过命令输入的参数优先级更高,会自动覆盖application.properties中的配置信息。

关闭命令行参数输入

如果不想让程序的运行受到命令行参数的影响,变得不可控制,可以关闭命令行参数的输入。

将main函数中的SpringBoot启动函数去掉外部输入的参数,只保留类名参数。

@SpringBootApplication
public class SsmpApplication {

    public static void main(String[] args) {
        SpringApplication.run(SsmpApplication.class);
    }

}
举报
评论 0