Можем ли мы изменить значение ключа в файле application.properties при весенней загрузке?

У меня есть одно значение в файле свойств, скажем,

my.flag=false

Я помещаю этот файл в {расположение файла.war}/config, чтобы переопределить внутренний файл application.properties. Поэтому, когда в моем контроллере я просто печатаю значение этого ключа, оно получается как false правильно.

Теперь мой вопрос, если я изменю это значение в application.properties на true, все еще в контроллере я получу предыдущее значение (значение во время запуска сервера).

Так нужно ли перезапускать сервер каждый раз, когда мне нужно изменить значение в файле application.properties?

1 ответ

Вам не нужно перезапускать приложение.

Самый простой способ - проверять файл свойств каждый раз, когда вы получаете доступ к свойству. Таким образом, ваше приложение всегда будет синхронизироваться с новыми значениями, сохраненными в файле.

Но это не эффективно, так как вы должны читать файл каждый раз, когда получаете доступ к свойству.

Лучше всего иметь класс config, который обрабатывает конфигурацию для вашего приложения.

Все классы в вашем приложении получат доступ к классу конфигурации, чтобы прочитать значения.

И класс config будет опрашивать файл с интервалами для загрузки новых значений.

Самый простой способ - иметь класс config как синглтон.

Другим решением, предоставляемым из среды Spring, является сервер конфигурации.

Это предназначено для облака, но если ваше приложение и ваша конфигурация сложны и нуждаются в большем количестве функций, вы должны проверить эту возможность.

Другие вопросы по тегам