Параметры времени выполнения хранятся в таблице SYS_CONFIG базы данных.
Такие свойства имеют следующие особенности:
-
так как значение свойства хранится в базе данных, оно задается в одном месте, независимо от того, в каких блоках приложения оно используется
-
значение может быть изменено и сохранено во время работы приложения, как через конфигурационный интерфейс, содержащий это свойство, так и через ConfigStorageMBean.
-
значение свойства может быть переопределено для конкретного блока приложения в его файле
app.properties
. Поиск значения всегда происходит в два этапа - сначала вapp.properties
, если не найдено - то в базе данных. Поэтому изменять значение нужно в обоих местах хранения.
Хранящиеся в БД свойства кэшируются на уровне Middleware. Очистить кэш можно с помощью JMX-интерфейсов
ConfigStorageMBean
методом clearCache()
или
CachingFacadeMBean
методом clearConfigStorageCache()
.
Следует иметь в виду, что на клиентском уровне чтение свойства, хранящегося в БД, приводит к запросу к Middleware, что менее эффективно, чем чтение локального свойства из app.properties
. Для уменьшения количества таких запросов клиент кэширует все свойства, хранящиеся в БД, на время жизни экземпляра реализации
конфигурационного интерфейса. Поэтому если, например, в некотором экране UI необходимо несколько раз обратиться к свойствам
одного конфигурационного интерфейса, лучше получить ссылку на него при инициализации экрана, и сохранить в поле для последующих
обращений к одному и тому же экземпляру.