Spring Boot: чтение списка значений из файла свойств - PullRequest
0 голосов
/ 20 марта 2020

У меня есть файл свойств с приведенным ниже списком значений

prop.myVariable=v1,v2,v3

Я пытался прочитать их, используя пружинную загрузку, как показано ниже:

@Value("#{'${prop.myVariable}'.split(',')}")
public static List<String> allowList;

Когда я пытался выполнить его, это не в состоянии читать и получать java .lang.NullPointerException

Ответы [ 3 ]

1 голос
/ 20 марта 2020

Stati c члены инициализируются перед загрузкой свойств. Чтобы обойти эту проблему, используйте инъекцию сеттера:

public static List<String> allowList;

@Value("#{'${prop.myVariable}'.split(',')}")
public void setAllowList(List<String> list) {
    allowList = list;
}
0 голосов
/ 20 марта 2020

Как я вижу, вы используете следующий код, почему вы даже хотите сохранить свойства в «списке»

List<String> allowList;
@Value("#{'${prop.myVariable}'.split(',')}") 
public List<String> setAllowList(List<String> list) { 
  this.list= list;
 } 
String Chars = myProperties.getConfigValue("prop.myVariable"); 
List<String> allowedCharacteristics = setCharacteristics(Chars); 

Вы должны сохранить свойства в «allowlist», используйте следующий код ниже

@Value("#{'${prop.myVariable}'.split(',')}")
public void setAllowList(List<String> list) {
    allowList = list;
}

, пожалуйста, следуйте этой теме -> Как получить доступ к значению, определенному в файле application.properties в Spring Boot , если вам нужно специально использовать "getConfigValue ()" .

0 голосов
/ 20 марта 2020
@Value("#{'${prop.myVariable}'.split(',')}")
private List<String> allowedCharacteristics;

Это сработало

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