Я могу читать (значение «плодов») из файла свойств в моем приложении весенней загрузки, успешно используя @Value, как показано ниже.
@Value("${fruits}")
private String[] fruitarray;
снизу
#section_1
fruits=apple,mango,banana
#section_2
apple.native=aaaa
apple.cost=100
apple.name=xxyyzz
Теперь я хотел бы знать, как я могу получить доступ к парам "ключ-значение" из раздела_2 файла свойств динамически. Я имею в виду ... в нашем приведенном выше коде мы уже получили массив фруктов и установили его в "fruitarray" с помощью @Value. Теперь, как мне получить доступ к значению «apple.native», используя переменную fruitarray [0] способом java / spring-boot?
Спасибо
Вы можете использовать карты: посмотрите здесь mkyong.com/spring3/spring-el-lists-maps-example
Попробуйте этот подход: stackoverflow.com/a/11321542/2652269 Используйте dellimiter ','




Это так просто:
@Value("${apple.native}")
private String Native;
@Value("${apple.cost}")
private Double cost;
@Value("${apple.name}")
private String name;
Вы можете попытаться получить все свойства как Bean и динамически обращаться к своим свойствам, просматривая список фруктов:
@Autowired
private Environment env;
...
env.getProperty(fruits[i] + ".native");
...
Источник: http://www.baeldung.com/properties-with-spring#usage
Spring boot по умолчанию предоставляет внедренные application.properties, поэтому нет необходимости делать все это.
Вы также можете определить файл свойств следующим образом
key.0=value0
key.1=value1
/ ** Возвращаем массив из файла свойств. Массив должен быть определен как «ключ.0 = значение0», «ключ.1 = значение1», ... * / общедоступный список getSystemStringProperties (строковый ключ) {
// result list
List<String> result = new LinkedList<>();
// defining variable for assignment in loop condition part
String value;
// next value loading defined in condition part
for(int i = 0; (value = YOUR_PROPERTY_OBJECT.getProperty(key + "." + i)) != null; i++) {
result.add(value);
}
// return
return result;
}
Просто используйте: @Value ("$ {apple. Native}")