Как закинуть аргументы в переменную или лучше в "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

→ Ссылка