Установите значение из переменной в одно свойство из файла application.properties - PullRequest
0 голосов
/ 05 июня 2019

Я пытаюсь установить значение моего application.properties, мне нужно указать путь к файлу.

Я знаю, что могу сделать это:

@Value("${catalog.path:theValuePath}")
private String absolutePath;

но я получил значение от метода, поэтому я пытался что-то вроде этого

@Value("${catalog.path}")
private String absolutePath=setCatalogPath();

public String setCatalogPath () {
    File file = new File("src/test/resources/MyFile.xml");
    String absolutePath = file.getAbsolutePath();
    return absolutePath;
}

Это не работает, и я думаю, это не идеальный способ, которым я занимаюсь, есть идеи? заранее спасибо

1 Ответ

1 голос
/ 05 июня 2019

Пожалуйста, посмотрите на пример ниже.Вы можете применить аннотацию @Value в классе, чтобы она была автоматически подключена. Обязательно записывайте методы получения и установки в переменную absolutePath, а не присваивайте значение с помощью оператора присваивания. Затем используйте метод get, чтобы вернуть значение для приложения.

  1. Класс данных

     @Component
     public class Data {
         @Value("${catalog.path:theValuePath}")
         private String absolutePath;
    
         public String getAbsolutePath() {
             return absolutePath;
         }
    
         public void setAbsolutePath(String absolutePath) {
             this.absolutePath = absolutePath;
         }
    
    
    
  2. Возвращение значения методом

    @RestController
    @RequestMapping("/")
    public class Mycon {


        @Autowired
        Data data;
        @GetMapping
        public String hello(ModelMap model) {

            return data.getAbsolutePath();

        }

    }
Файл Application.properties
    catalog.path:theValuePath="src/test/resources/MyFile.xml"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...