Мы использовали БД для хранения значений конфигурации и ehcache, чтобы избежать большого количества обращений к БД.Таким образом, вам не нужно беспокоиться об использовании памяти (она будет использовать любую имеющуюся у вас память).
EhCache - одно из многих доступных решений для кэширования БД, которое можно настроить поверх JPA и т. Д.
Вы можете настроить ehcache (или многих других провайдеров кеша) так, чтобы таблицы считались доступными только для чтения, и в этом случае он будет отправляться в БД только в том случае, если явно указано, что кеш недействителен.Это работает довольно хорошо.Затраты становятся видимыми, хотя, когда чтение происходит очень часто (например, 100 / сек), но обычно сохраняя значение конфигурации в локальной переменной и избегая чтения внутри циклов, передавая его через стек методов во время вызова, достаточно хорошо это смягчает.
Хранение значений в Singleton как java-объектах работает лучше, но если вы хотите изменить их без приложения.Запустите, это становится немного сложным.
Вот простой способ достижения динамической конфигурации с объектами Java:
private volatile ImmutableMap<String,Object> param_value
По сути, вам придется задуматься о многопоточностидоступ и проблемы с памятью (хотя весьма маловероятно, что вам не хватит памяти из-за значений конфигурации, если только у вас нет двоичных данных в качестве значений конфигурации и т. д.).
По сути, я бы рекомендовал использоватьБД и некоторый поставщик кеша, если эта часть кода действительно не требует высокой производительности.