java - Spring Boot中的命令行参数在主要问题之外
问题描述
我试图在spring boot应用程序的主要方法之外获取命令行参数,我尝试了很多方法,但没有一个有效。我正在使用弹簧靴 2.4.5。以下是我的代码:
package com.example;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MainClass implements ApplicationRunner {
public static void main(String[] args){
SpringApplication.run(MainClass.class);
for (String arg : args) System.out.println("MAIN::::"+arg);
}
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println("# NonOptionArgs: " + args.getNonOptionArgs().size());
System.out.println("NonOptionArgs:");
args.getNonOptionArgs().forEach(System.out::println);
System.out.println("# OptionArgs: " + args.getOptionNames().size());
System.out.println("OptionArgs:");
args.getOptionNames().forEach(optionName -> {
System.out.println(optionName + "=" + args.getOptionValues(optionName));
});
}
}
这是传递参数的输出iamnonoption --app.name=CmdRulez --app.hosts=abc,def,ghi --app.name=2
:
# NonOptionArgs: 0
NonOptionArgs:
# OptionArgs: 0
OptionArgs:
MAIN::::iamnonoption
MAIN::::--app.name=CmdRulez
MAIN::::--app.hosts=abc,def,ghi
MAIN::::--app.name=2
为什么 ApplicationArguments 没有得到任何参数?
解决方案
推荐阅读
- javascript - 如何在javascript中将数组转换为json对象?
- python - Flask-Bootstrap wtf.quick_form 是否呈现 SelectFields?
- mongodb - Spring Data Mongo DB Criteria 查询以根据条件过滤嵌套文档
- elasticsearch - Elasticsearch Term Vector API 的字段统计含义
- c++ - 使用随机挑选的皇后解决 N-Queen 问题
- html - Main text overlapping over footer
- python - python-crontab:查找现有的 cron 作业给出错误的结果
- python - 函数出错,输出一定是30但不回答问题出在哪里?
- javascript - 如何避免使用 socket.io 更改套接字 ID?
- java - Java泛型 - 遍历从相同父级扩展的未实例化类列表并调用父级方法