Как читать из файла свойств при весенней загрузке

Я могу читать (значение «плодов») из файла свойств в моем приложении весенней загрузки, успешно используя @Value, как показано ниже.

@Value("${fruits}")
private String[] fruitarray;

снизу

файл: applicationaton.properties

#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?

Спасибо

Просто используйте: @Value ("$ {apple. Native}")

dbl 03.08.2018 13:53

Вы можете использовать карты: посмотрите здесь mkyong.com/spring3/spring-el-lists-maps-example

mrkernelpanic 03.08.2018 13:54

Попробуйте этот подход: stackoverflow.com/a/11321542/2652269 Используйте dellimiter ','

Chintan Pandya 03.08.2018 14:02
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
3
3 080
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Это так просто:

    @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, поэтому нет необходимости делать все это.

Alien 03.08.2018 14:22

Вы также можете определить файл свойств следующим образом

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;

}

Другие вопросы по теме