Статическая аннотация @Value является нулевой в выполнении @PostConstruct - PullRequest
0 голосов
/ 12 июня 2019

Я столкнулся с этой проблемой: у меня есть класс с переменной @Value, объявленной как статическая, как показано.Когда мое приложение запускает @PostConstruct для доступа к методу этого класса, найдите мою переменную с нулевым значением.

Если я вызову этот класс после выполнения de @PostConstruct, я вижу, что статическая переменная @Value имеет видне нуль, и он имеет правильное значение.

Как я мог иметь эту переменную с ее реальным значением в выполнении @PostConstruct?

Это мой код:

@Component
public class ValidacionesUtils {

public static String variable;

@Value("${access.to.my.variable}")
public void setVariable(String variable) {
    this.variable = variable;
}

@PostConstruct
private void init() {
    if (variable==null) {
        log.error("This is what my application prints");
    } else {
        log.error("This is not printed");
    }
}

}

1 Ответ

0 голосов
/ 12 июня 2019

Почему вы объявляете его общедоступным и статичным?

попробуйте выполнить

@Value("${access.to.my.variable}")
private String variable;

Это должно быть доступно в @PostConstruct таким образом

...