Как зайти в Даркнет?!
25th January, 01:11
6
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
895
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
914
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
906
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4351
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Java платформа конфигурации
Я нахожусь в процессе отсеивания всех жестко закодированных значений в библиотеке Java и задаюсь вопросом, какой фреймворк будет лучшим (с точки зрения нулевой или close-to-zero конфигурации) для обработки конфигурации во время выполнения? Я бы предпочел файлы конфигурации на основе XML, но это не так важно.
Пожалуйста, отвечайте только в том случае, если у вас есть практический опыт работы с фреймворком. Я ищу не Примеры, а опыт...
Apache конфигурация Commons работает отлично. Он поддерживает сохранение конфигурации в широком диапазоне форматов на бэкэнде, включая свойства, XML, JNDI и многое другое. Он прост в использовании и расширении. Чтобы получить максимальную гибкость от него, используйте завод для получения конфигурации и просто используйте интерфейс конфигурации после этого.
Две особенности конфигурации Commons, отличающие ее от прямого файла свойств, заключаются в том, что она поддерживает автоматическое преобразование в общие типы (int, float, String array) и поддерживает замену свойств:
server.host=myHost
server.url=http://${server.host}/somePath
Если ваши жестко закодированные значения - это просто простые пары ключ-значение, вам следует посмотреть на java.util.Properties . Это намного проще, чем xml, проще в использовании и умопомрачительно тривиально для реализации.
Если вы работаете с Java и данные, которые вы храните или извлекаете с диска, моделируются как пара ключ-значение (что, похоже, так и есть в вашем случае), то я действительно не могу представить себе лучшего решения.
Я использовал файлы свойств для простой настройки небольших пакетов в более крупном проекте, а также в качестве более глобальной конфигурации для всего проекта, и у меня никогда не было проблем с этим.
Конечно, это имеет огромное преимущество, не требуя использования каких-либо сторонних библиотек.
Здесь представлены различные варианты:
- java.util.Properties
- java.util.prefs.Preferences (начиная с Java 5)
- Конфигурация Общего Пользования
- jConfig
- JFig
- Обслуживание конфигурации углерода
Вы можете прочитать сравнение конфигурации Commons С JFig и JConfig и настроить свои приложения с помощью JFig для получения некоторой обратной связи от различных пользователей.
Лично я использовал jConfig, и это был хороший опыт.
Конфигурация Общего Пользования
Мы этим пользуемся. Файлы свойств сами по себе гораздо легче обрабатывать, но если вам нужно представить более сложные данные, конфигурация commons может сделать это и прочитать ваши файлы свойств.
Если вы не делаете ничего сложного, я бы придерживался правильных файлов.
интеллектуальный инструмент использования параметров (InPUT, страница ) позволяет экстернализировать практически любое (жестко закодированное) решение в качестве параметра в файл конфигурации на основе XML. Она была начата в начале 2012 года в качестве ответа на предполагаемые недостатки существующих инструментов конфигурации в отношении общности и разделения проблем.
InPUT, вероятно, является более мощным, чем требуется в большинстве случаев использования, поскольку он позволяет независимому формулированию экспериментальных данных на языке программирования (вход - выход) с такими функциями , как определение сложных дескрипторов для сопоставления классов или рандомизированное создание конфигурации и проверка на основе предопределенных диапазонов значений (для тестирования и исследований, например, моделирование Монте-Карло). Вы можете задать параметры с субпараметрами, относительными ограничениями на значения параметров (числовые параметры a > param b) и т. д. .
Он все еще находится в бета-версии, но довольно стабилен, я использую его для своих исследований, для настройки и документирования экспериментов, а также для учебных целей . Как только он становится доступным для других языков (адаптер C++ в канале), другие исследователи/практики могут повторно использовать дескрипторы, выполняющие свои реализации тех же алгоритмов в C++ (используя концепцию сопоставления кода). Таким образом, экспериментальные результаты могут быть проверены/программы могут быть перенесены более легко . Документация все еще находится в рабочем процессе, но несколько примеров доступны на странице. InPUT - это программное обеспечение с открытым исходным кодом.
Для тех, кто заинтересован, концептуальный исследовательский документ .
Если вы хотите сделать что-то продвинутое (и безопасное для печати), вы можете взглянуть на это: http://www.ibm.com/developerworks/java/library/j-configint/index.html
Я обычно использую java.util.Properties (или аналогичные классы в других языках и фреймворках), завернутые в специфичный для приложения класс конфигурации , но меня очень интересуют альтернативы или вариации на этот счет. Тем более, что все может стать немного сложнее, если задействованы графические диалоги конфигурации или несколько представлений данных конфигурации.
К сожалению, у меня нет никакого опыта работы с конкретными библиотеками для Java (за исключением тех, которые я написал сам), но любые указатели будут оценены.
Обновление
OK. Это было не совсем верно, три - это проект конфигурации Spring Java .
Я писал об этом пару недель назад и пришел к выводу, что XML является одним из наиболее широко используемых обозначений.
Разве это самое лучшее? Я так не думаю, мне действительно нравится JSON, но инструмент все еще не дошел до XML, так что, думаю, мы должны подождать и посмотреть.
Я только что опубликовал краткий фрагмент кода об использовании Spring-х ClassPathResource в качестве альтернативы IoC. ClassPathResource позволяет размещать файлы свойств в любом месте на classpath (например, все в одном месте или как одноранговые элементы кода, который они настраивают. В моем примере просто используется java.util.Properties, поэтому вы можете использовать стиль открытого текста "name=value" или его формат XML.
Вы можете попробовать YamlBeans . Таким образом, вы записываете любые классы, которые хотите сохранить ваши конфигурационные данные, а затем можете автоматически записывать и читать их в YAML и из него.
YAML-это читаемый человеком формат данных. Он обладает большей выразительной силой, чем java.util.Properties. Вы можете иметь списки, карты, якоря, типизированные данные и т. д.
Пожалуйста, взгляните на это URL: http://issues.apache.org/jira/browse/CONFIGURATION-394
Платформа конфигурации, которую мы ищем, является чем-то сверх конфигурации Apache Commons и должна поддерживать проблемы параллелизма, JMX проблемы и большинство хранилищ(например, .properties файлов, .xml файлов или PreferencesAPI).
То, что команда weblogic предоставляет на 'Administration Console', - это intersting, через который вы можете иметь транзакционные (атомарные) обновления конфигураций, так что зарегистрированные слушатели будут уведомлены.
Ребята из Apache настаивают, что этот проект находится вне рамок конфигурации Commons, возможно!
Я прикрепил простую структуру конфигурации, посмотрите, пожалуйста.
Файлы свойств очень просто, если вам нужно что-то более функциональное, вы можете отформатировать некоторые из ваших конфигурационных файлов как классы Java. Они могут быть помещены в другой пакет / модуль и могут быть предварительно скомпилированы или загружены во время выполнения с библиотекой, такой как BeanShell.
Примечание: в самом простом случае (предварительно скомпилированном) вам не нужны никакие дополнительные библиотеки.
Вы можете взглянуть на недавно анонсированные tools4j-config , чья миссия состоит в том, чтобы позволить вам легко обрабатывать конфигурацию во время выполнения.