Значения свойств в файле yml не загружаются в класс в проекте springboot - PullRequest
0 голосов
/ 02 мая 2018

Пожалуйста, найдите код ниже для application.yml

decrypt: /Users/Blahblah/Bleh

Приведенное выше свойство, которое мы пытаемся прочитать в классе, найдите код для PropertyLoader.java

@Configuration
@Component
public class PropertyLoader implements InitializingBean{
    @Value("${decrypt}")
    private String decryptPath;
    <--->
}

значение decryptPath всегда равно нулю. Может кто-нибудь сказать мне, что не так с кодом?

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Оказывается, поскольку этот класс реализует InitializingBean, объект свойств не будет инициализирован, пока этот класс не завершит выполнение. @Value всегда будет возвращать ноль.

0 голосов
/ 02 мая 2018

Во-первых, application.yml должен находиться под src/main/resources/application.yml.

Если вы хотите использовать эти переменные в конструкторе, вы не должны. Потому что Spring вводит аннотированные переменные @Value после конструкции. Но если вы хотите сделать это в конструкторе, вы можете сделать так:

public class PropertyLoader implements InitializingBean{

    private String decryptPath;

    public PropertyLoader(@Value("${decrypt}") decrypPath) {
     this.decryptPath = decryptPath;

     }
    }   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...