Очень большое количество редко меняющихся настроек поведения системы вынесено в конфигурации. Конфигурация - это текстовый блок, состоящих из записей вида: <ключ>=<значение>. На одной строке может быть только одна такая запись, символ # в начале строки означает комментарий.
Конфигурации вводятся либо в текстовых .properties - файлах (опции подключения к БД, базовые настройки), либо в редакторах конфигурации, сохраняясь в базе данных.
Переменные
В значениях параметров конфигурации возможна подстановка ранее указанных значений с помощью подстановок {@имя параметра}. Рассмотрим пример подстановки.
# определение значения howYou=how you # использование подстановки some.kind.of.config.record=Thats {@howYou} should use macro!
Т.е. при такой конфигурации при взятии значения some.kind.of.config.record получаем в результате строку "Thats how you should use macro!". Подставляемое значение должно быть обязательно определено ранее подстановки.
Счётчики
После разбора конфигурация используется системой как набор пар ключ - значение, в котором порядок не определён. При необходимости указания порядка в ключе вводятся дополнительные числовые индексы.
Например:
object.1.id=1 object.1.title=Title1 object.2.id=2 object.2.title=Title2
При большом количестве подобных записей ведение индекса может быть затруднительным, особенно при необходимости изменения номеров записей. В этом случе индекс можно вынести в отдельную переменную, увеличивая его с помощью макроса inc. Далее приведена идентичная конфигурация, индексы в которой выведены в переменную.
index=1 object.{@index}.id=1 object.{@index}.title=Title1 object.{@inc:index}.id=2 object.{@index}.title=Title2
Склеивание значений
Помимо присвоения параметр конфигурации можно приклеивать к уже существующему под таким ключём значению. Для этого используется оператор +=. Например:
key=1 key+=,2 key+=,3
В этом случе под ключом key будет храниться строка "1,2,3".
Склеивание помогает разбить длинную строку конфигурации на несколько более читаемых. Например:
# дата рожд., с.-н. пасп., д.в. пасп., кем выд. пасп, адрес проп., тел. гор, тел. сот, адрес(а) усл., перс. данные bgbilling:creator.importParameters=73,74,75,76,77,78,14,12,115 # ИНН, КПП, ФИО руководителя, полное название, должность рук.-ля, E-Mail(ы) bgbilling:creator.importParameters+=,248,249, 252, 428, 429, 15
Также оно полезно при объединении нескольких конфигураций, позволяя создать общую объединённую переменную.
Многострочные значения
Ещё один способ разбития на несколько строк значения конфигурации.
value=<<END Line1 Line2 END
Значение value будет Line1Line2. Переносы строк не участвуют в склеивании. Вместо END можно использовать любую строку.