Как закинуть аргументы в переменную или лучше в "application.properties" запуская свой архив: java -jar project-1.0.0.jar C:/Document/MyMedia?
Необходимо передать аргумент с запуском jar файла (java -jar project-1.0.0.jar C:/Document/MyMedia) в переменную для хранения пути, куда будут сохраняться файлы. Надо чтобы эта переменная попала в application.properties или присвоилась переменой uploadPath в MyController с аннотацией @Value. У меня есть решение, но считаю оно неправильное. Мой код:
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
MyController.uploadPath=args[0];
//Это конечно "костыль" и топорное решение, но только так придумал
SpringApplication.run(MyApplication.class, args);
}
@Controller
@RequestMapping("/")
public class MyController {
@Value("${upload.path}")
String uploadPath;
// public static String uploadPath;
// Это костыль
Ответы (1 шт):
Автор решения: Artur Kovalchuk
→ Ссылка
Нужно добавить переменную в application.properties и читаешь в не jar
java -jar app.jar --spring.config.location=optional:file:./myconfig.properties
Есть другие варианты в документации: https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.external-config