Java: какую конфигурационную инфраструктуру использовать? - PullRequest
6 голосов
/ 09 марта 2010

Мне нужно решить, какую инфраструктуру конфигурации использовать. Сейчас я думаю о том, чтобы использовать файлы свойств и файлы 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» как другой. Если это невозможно, я всегда могу сам разделить один объект конфигурации на меньший в части инициализации приложения.

Какие рамки лучше всего подойдут для меня?

Ответы [ 3 ]

12 голосов
/ 09 марта 2010

Поскольку вы говорите, что в конфигурации можно также хранить объекты, я бы предложил следующее:

http://commons.apache.org/configuration/

4 голосов
/ 09 марта 2010

Самый простой способ сделать это - использовать Simple XML. Он может связывать XML с Java POJO очень простым способом. Кроме того, это намного быстрее, чем другие подобные структуры связывания XML.

http://simple.sourceforge.net

Только 270 КБ без зависимостей.

1 голос
/ 30 июля 2010

Пожалуйста, посмотрите на этот URL: http://issues.apache.org/jira/browse/CONFIGURATION-394

Фреймворк конфигурации, который мы ищем, находится в верхней части конфигурации Apache Commons и должен поддерживать проблемы параллелизма, JMX и большинство хранилищ (например, файл свойств, XML-файлы или PreferencesAPI).

Информация, которую команда weblogic предоставляет на «Консоли администрирования», интересна тем, что через нее вы можете получать транзакционные (атомарные) обновления конфигураций, чтобы уведомлять зарегистрированных слушателей.

Ребята из Apache настаивают на том, что этот проект выходит за рамки конфигурации Commons, может быть!

Я прикрепил простую структуру конфигурации, посмотрите пожалуйста

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