2015-06-02 2 views
0

У меня есть XML-файл, содержащий правила для анализатора кода (для поиска уязвимостей). Таким образом, он имеет очень разные правила, такие как параметр, количество параметров, любой тип параметра, значение const и т. Д. Для вызова метода (для обнаружения конкретных вызовов), правила для обнаружения некоторых импортов, наследования и т. Д. Но как сохранить это в моей программе? Я нашел два способа:Java - лучший способ хранения конфигураций внутри программы

  1. Разбор XML во время сканирования (для внутреннего представления)
  2. Создание классов для каждого элемента: параметр, значение параметра, число параметров

Есть ли реальная жизнь пример реализации этой вещи? Или вы можете просто сказать, лучший/простой способ сделать это

+0

Не стесняйтесь спрашивать что-то и комментировать, я буду изменять вопрос – ivan

+0

. Какова была причина сохранить его в коде? В этом случае вы не можете перемещаться между средами dev/test/prod - вам нужно будет изменить код. Храните конфиг в файле xml в том же репозитории и используйте его как ресурс. – Alex

ответ

0

Держа в файле XML, вероятно, будет самым простым методом

+0

Но это потребует от меня написать больше дублирующего кода. Представьте себе: разные правила для разных задач. Я также хочу добавить условия, которые будут содержать логические операторы. – ivan

+0

XML - самый распространенный способ хранения конфигов. Условия, скорее всего, будут обрабатываться в Java-коде. Возможно, вам придется писать более повторяющийся код, но, следуя общей методологии, вы не убиваете, насколько хорошо поддерживается ваш код – GregH

+0

Вы правы, но я планировал сделать своего рода АСТ (токены - это мои окончательные правила, которые НЕ НЕ, ИЛИ, И логические операторы), разве это не так хорошо? – ivan

0

Если вы хотите сохранить конфигурации в вашем коде - используйте код, чтобы сделать это. Вот хороший example простой инициализации:

Map<String, Integer> config = new HashMap<String, Integer>() 
{{ 
    put("One", 1); 
    put("Two", 2); 
    put("Three", 3); 
}}; 
+0

Но что это? Как HashMap может помочь мне с сохранением конфигураций? – ivan

+0

Вы не представили ни одного примера. Я предположил, что это простые пары ключ = значение. Если это не так, то xml является единственным вариантом. И я процитирую себя: «Храните конфиг в xml-файле в том же репозитории и используйте его как ресурс» – Alex

0

В этих случаях я люблю использовать файлы свойств

.properties является расширение файла для файлов в основном используется в Java, связанные технологии для хранения настраиваемых параметров приложение. Они также могут использоваться для хранения строк для интернационализации и локализации; они известны как Связи ресурсов ресурсов.

Предположим, у вас есть файл в пакете path.to.your с файла свойств file.properties вы можете включить их в вас банку и восстановить файл с getClass().getResourceAsStream("/path/to/your/file.properties"), то вы можете загрузить пакет, изменения параметров, добавить новые ключи и т. д., больше информации с MKYong - Java Properties file examples

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