考虑到Spring Boot CommandLineRunner
应用程序,我想知道如何筛选传递给Spring Boot的“开关”选项作为外部配置。Spring Boot CommandLineRunner:筛选器选项参数
例如,使用:
@Component
public class FileProcessingCommandLine implements CommandLineRunner {
@Override
public void run(String... strings) throws Exception {
for (String filename: strings) {
File file = new File(filename);
service.doSomething(file);
}
}
}
我可以打电话java -jar myJar.jar /tmp/file1 /tmp/file2
,该服务将被调用这两个文件。
但是,如果我添加一个弹簧参数,如java -jar myJar.jar /tmp/file1 /tmp/file2 --spring.config.name=myproject
那么配置名称会更新(正确!),但该服务也被称为文件./--spring.config.name=myproject
当然不存在。
我知道我可以手动过滤的文件名以类似
if (!filename.startsWith("--")) ...
但作为这一切的组件从春天来了,我不知道是否有没有选择的地方,让它管理它,并确保传递给run
方法的strings
参数不包含应用程序级别已解析的所有属性选项。
感谢您考虑了! – 2014-11-25 08:41:11
有没有关于这方面的消息?过去6个月至少有一千人看过这个问题。 – 2015-06-17 11:26:51
看起来像这样已经解决了我们现在有一个如何使用'ApplicationArguments'的例子吗? – Jackie 2016-08-08 14:05:26