Сведения о вопросе

DUNKER

23:44, 27th August, 2020

Java платформа конфигурации

Просмотров: 427   Ответов: 14

Я нахожусь в процессе отсеивания всех жестко закодированных значений в библиотеке Java и задаюсь вопросом, какой фреймворк будет лучшим (с точки зрения нулевой или close-to-zero конфигурации) для обработки конфигурации во время выполнения? Я бы предпочел файлы конфигурации на основе XML, но это не так важно.

Пожалуйста, отвечайте только в том случае, если у вас есть практический опыт работы с фреймворком. Я ищу не Примеры, а опыт...



  Сведения об ответе

PIRLO

13:34, 29th August, 2020

Apache конфигурация Commons работает отлично. Он поддерживает сохранение конфигурации в широком диапазоне форматов на бэкэнде, включая свойства, XML, JNDI и многое другое. Он прост в использовании и расширении. Чтобы получить максимальную гибкость от него, используйте завод для получения конфигурации и просто используйте интерфейс конфигурации после этого.

Две особенности конфигурации Commons, отличающие ее от прямого файла свойств, заключаются в том, что она поддерживает автоматическое преобразование в общие типы (int, float, String array) и поддерживает замену свойств:

server.host=myHost
server.url=http://${server.host}/somePath


  Сведения об ответе

SILA

08:11, 18th August, 2020

Если ваши жестко закодированные значения - это просто простые пары ключ-значение, вам следует посмотреть на java.util.Properties . Это намного проще, чем xml, проще в использовании и умопомрачительно тривиально для реализации.

Если вы работаете с Java и данные, которые вы храните или извлекаете с диска, моделируются как пара ключ-значение (что, похоже, так и есть в вашем случае), то я действительно не могу представить себе лучшего решения.

Я использовал файлы свойств для простой настройки небольших пакетов в более крупном проекте, а также в качестве более глобальной конфигурации для всего проекта, и у меня никогда не было проблем с этим.

Конечно, это имеет огромное преимущество, не требуя использования каких-либо сторонних библиотек.


  Сведения об ответе

DO__IT

03:49, 10th August, 2020

Здесь представлены различные варианты:

Вы можете прочитать сравнение конфигурации Commons С JFig и JConfig и настроить свои приложения с помощью JFig для получения некоторой обратной связи от различных пользователей.

Лично я использовал jConfig, и это был хороший опыт.


  Сведения об ответе

LAST

18:21, 14th August, 2020

Конфигурация Общего Пользования

Мы этим пользуемся. Файлы свойств сами по себе гораздо легче обрабатывать, но если вам нужно представить более сложные данные, конфигурация commons может сделать это и прочитать ваши файлы свойств.

Если вы не делаете ничего сложного, я бы придерживался правильных файлов.


  Сведения об ответе

PROGA

19:52, 4th August, 2020

интеллектуальный инструмент использования параметров (InPUT, страница ) позволяет экстернализировать практически любое (жестко закодированное) решение в качестве параметра в файл конфигурации на основе XML. Она была начата в начале 2012 года в качестве ответа на предполагаемые недостатки существующих инструментов конфигурации в отношении общности и разделения проблем.

InPUT, вероятно, является более мощным, чем требуется в большинстве случаев использования, поскольку он позволяет независимому формулированию экспериментальных данных на языке программирования (вход - выход) с такими функциями , как определение сложных дескрипторов для сопоставления классов или рандомизированное создание конфигурации и проверка на основе предопределенных диапазонов значений (для тестирования и исследований, например, моделирование Монте-Карло). Вы можете задать параметры с субпараметрами, относительными ограничениями на значения параметров (числовые параметры a > param b) и т. д. .

Он все еще находится в бета-версии, но довольно стабилен, я использую его для своих исследований, для настройки и документирования экспериментов, а также для учебных целей . Как только он становится доступным для других языков (адаптер C++ в канале), другие исследователи/практики могут повторно использовать дескрипторы, выполняющие свои реализации тех же алгоритмов в C++ (используя концепцию сопоставления кода). Таким образом, экспериментальные результаты могут быть проверены/программы могут быть перенесены более легко . Документация все еще находится в рабочем процессе, но несколько примеров доступны на странице. InPUT - это программное обеспечение с открытым исходным кодом.

Для тех, кто заинтересован, концептуальный исследовательский документ .


  Сведения об ответе

screen

02:21, 11th August, 2020

Если вы хотите сделать что-то продвинутое (и безопасное для печати), вы можете взглянуть на это: http://www.ibm.com/developerworks/java/library/j-configint/index.html


  Сведения об ответе

nYU

10:13, 21st August, 2020

Я обычно использую java.util.Properties (или аналогичные классы в других языках и фреймворках), завернутые в специфичный для приложения класс конфигурации , но меня очень интересуют альтернативы или вариации на этот счет. Тем более, что все может стать немного сложнее, если задействованы графические диалоги конфигурации или несколько представлений данных конфигурации.

К сожалению, у меня нет никакого опыта работы с конкретными библиотеками для Java (за исключением тех, которые я написал сам), но любые указатели будут оценены.

Обновление

OK. Это было не совсем верно, три - это проект конфигурации Spring Java .


  Сведения об ответе

P_S_S

13:13, 23rd August, 2020

Я писал об этом пару недель назад и пришел к выводу, что XML является одним из наиболее широко используемых обозначений.

Разве это самое лучшее? Я так не думаю, мне действительно нравится JSON, но инструмент все еще не дошел до XML, так что, думаю, мы должны подождать и посмотреть.


  Сведения об ответе

FAriza

19:10, 9th August, 2020

Я только что опубликовал краткий фрагмент кода об использовании Spring-х ClassPathResource в качестве альтернативы IoC. ClassPathResource позволяет размещать файлы свойств в любом месте на classpath (например, все в одном месте или как одноранговые элементы кода, который они настраивают. В моем примере просто используется java.util.Properties, поэтому вы можете использовать стиль открытого текста "name=value" или его формат XML.


  Сведения об ответе

lesha

18:00, 29th August, 2020

Вы можете попробовать YamlBeans . Таким образом, вы записываете любые классы, которые хотите сохранить ваши конфигурационные данные, а затем можете автоматически записывать и читать их в YAML и из него.

YAML-это читаемый человеком формат данных. Он обладает большей выразительной силой, чем java.util.Properties. Вы можете иметь списки, карты, якоря, типизированные данные и т. д.


  Сведения об ответе

baggs

09:17, 15th August, 2020

Пожалуйста, взгляните на это URL: http://issues.apache.org/jira/browse/CONFIGURATION-394

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

То, что команда weblogic предоставляет на 'Administration Console', - это intersting, через который вы можете иметь транзакционные (атомарные) обновления конфигураций, так что зарегистрированные слушатели будут уведомлены.

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

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


  Сведения об ответе

SEEYOU

19:02, 12th August, 2020

Файлы свойств очень просто, если вам нужно что-то более функциональное, вы можете отформатировать некоторые из ваших конфигурационных файлов как классы Java. Они могут быть помещены в другой пакет / модуль и могут быть предварительно скомпилированы или загружены во время выполнения с библиотекой, такой как BeanShell.

Примечание: в самом простом случае (предварительно скомпилированном) вам не нужны никакие дополнительные библиотеки.


  Сведения об ответе

SEEYOU

20:34, 25th August, 2020

Что касается предложений использовать java.util.Properties-starting в jdk 1.5, то Preferences API (java.util.prefs) представляется предпочтительной альтернативой использованию Properties API.

Причины: повышенная масштабируемость,внутренняя нейтральность и т. д.


  Сведения об ответе

padenie

17:32, 21st August, 2020

Вы можете взглянуть на недавно анонсированные tools4j-config , чья миссия состоит в том, чтобы позволить вам легко обрабатывать конфигурацию во время выполнения.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться