2015-12-04 3 views
2

Возможно ли получить свойства из файла свойств, который делит свойства в разделах? Если да, то как?Как читать свойства Spring из файла по разделам

Исх. props.properties

[section1] 
a=1 
b=2 
c=3 

[section2] 
a=4 
b=5 
c=6 

Как 'section1' можно выбрать с помощью пружины? В коде, как можно прочитать свойство «a» из раздела 1. Есть ли что-нибудь, что позволяет программисту выбрать секцию1, а затем свойство a?

Редактировать: Также обратите внимание, что имя свойства в обоих разделах одинаково. section1 имеет свойство 'a', а section2 также имеет свойство 'a'.

Редактировать 2: То, что я ищу, - это способ создания карты карт. Например, property.get ("section1"). Get ("a") должен возвращать 1 и properties.get ("section2"). Get ("a") должен возвращать 4. Данные, которые я использую, содержат страны и провинций. Итак, для «страны 1» существуют провинции, обозначенные цифрами: 1 = AL, 2 = AK и т. Д .; для «страны 2» есть также провинции, обозначенные цифрой: 1 = AB, 2 = BC и т. д. Я хочу иметь возможность получить прованс, основанный на стране: properties.get («страна 1»). get ("1 ") возвращает AL, а property.get (" страна 2 "). get (" 1 ") возвращает AB. Использование префикса не позволит мне выбрать страну динамически, правильно?

ответ

1

Возможно, если вы префикс всех свойств с именем раздела, например.

section1.a=1 
section1.b=2 


... 
section2.a=4 
section2.b=5 

А затем придать свойства с @ConfigurationProperties(prefix="section1")

+0

Позволяет ли я переключаться между разделами 2 и секцией 1 в том же файле класса? – Ali

0

Я предлагаю вам посмотреть в использовании YAML вместо свойств для конфигурации Spring:

Spring Documentation - Using YAML instead of Properties

+0

Спасибо за предложение. Это зависит от того, что предложил @jny. уменьшил объем копирования/вставки, необходимый для добавления свойств. – Ali

0

Вы можете использовать профили в Spring и имеют отдельный файл свойств для каждой среды. Что-то вроде

application-dev.properties

a=1 
b=2 
c=3 

application-prod.properties

a=4 
b=5 
c=6 

Здесь есть два примера использования свойств с окружающими средами

http://examples.javacodegeeks.com/enterprise-java/spring/load-environment-configurations-and-properties-with-spring-example/

http://www.mkyong.com/spring/spring-propertysources-example/

+0

Спасибо за ваш ответ @reos. Я хотел сохранить свойства в одном файле, так как обе «секции» понадобятся как для всех сред. – Ali

Смежные вопросы