考慮到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