Мне нужно решить, какую инфраструктуру конфигурации использовать. Сейчас я думаю о том, чтобы использовать файлы свойств и файлы XML. Моя конфигурация должна иметь некоторую примитивную группировку, например в формате XML будет что-то вроде:
<configuration>
<group name="abc">
<param1>value1</param1>
<param2>value2</param2>
</group>
<group name="def">
<param3>value3</param3>
<param4>value4</param4>
</group>
</configuration>
или файл свойств (что-то похожее на log4j.properties):
group.abc.param1 = value1
group.abc.param2 = value2
group.def.param3 = value3
group.def.param4 = value4
Мне нужна двунаправленная (для чтения и записи) конфигурация библиотеки / фреймворка. Приятной особенностью было бы то, что я мог считывать разные группы конфигурации как разные объекты, чтобы потом мог передавать их в разные места, например - читать все, что принадлежит группе «abc» как один объект и «def» как другой. Если это невозможно, я всегда могу сам разделить один объект конфигурации на меньший в части инициализации приложения.
Какие рамки лучше всего подойдут для меня?