Spring MVC, почему мое свойство равно нулю при вызове свойства @Value - PullRequest
0 голосов
/ 15 января 2019

Мой код следующий:

public class BgpService{
  @Value("${serviceName}")
  private String serviceName;
  private String fullName = serviceName+"/rest" 
}

У меня есть serviceName в моем файле config.properties, значение serviceName = 10.1.1.1, но когда я использую fullName, значение равно null/rest, я ожидал, что оно должно быть 10.1.1.1/rest.

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Несколько вещей, которые вам нужно проверить и исправить в вашем коде.

  1. В указанном вами фрагменте отсутствует пропущенная аннотация @Component & @Configuration & @PropertySource

    @Component 
    @Configuration
    @PropertySource("classpath:config.properties")
    public class BgpService{}
    
  2. Вы пытаетесь присвоить / использовать значение поля serviceName на статическом уровне (класс), поэтому вам необходимо определить поле serviceName как статическое.

    @Value("${serviceName}")
    private static String serviceName;
    
  3. И добавьте метод post-конструкции, чтобы присвоить значение другому полю. В настоящее время ваша инициализация недействительна.

    @PostConstruct
    public void init(){
      fullName = serviceName+"/rest"
    }
    
0 голосов
/ 15 января 2019

Ваш класс "BgpService" считается бобом весной? Есть ли у вас какие-либо весенние аннотации над ним (например, @Service или @Component)? Находится ли этот класс в диапазоне «компонентного сканирования»? Свойства вводятся только бобами Spring в Spring.

Можете ли вы получить доступ к другим свойствам из вашего конфигурационного файла из другого класса? Это покажет, находится ли ваш файл свойств в пути к классам.

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