Можем ли мы изменить значение ключа в файле application.properties при весенней загрузке?
У меня есть одно значение в файле свойств, скажем,
my.flag=false
Я помещаю этот файл в {расположение файла.war}/config, чтобы переопределить внутренний файл application.properties. Поэтому, когда в моем контроллере я просто печатаю значение этого ключа, оно получается как false правильно.
Теперь мой вопрос, если я изменю это значение в application.properties на true, все еще в контроллере я получу предыдущее значение (значение во время запуска сервера).
Так нужно ли перезапускать сервер каждый раз, когда мне нужно изменить значение в файле application.properties?
1 ответ
Вам не нужно перезапускать приложение.
Самый простой способ - проверять файл свойств каждый раз, когда вы получаете доступ к свойству. Таким образом, ваше приложение всегда будет синхронизироваться с новыми значениями, сохраненными в файле.
Но это не эффективно, так как вы должны читать файл каждый раз, когда получаете доступ к свойству.
Лучше всего иметь класс config, который обрабатывает конфигурацию для вашего приложения.
Все классы в вашем приложении получат доступ к классу конфигурации, чтобы прочитать значения.
И класс config будет опрашивать файл с интервалами для загрузки новых значений.
Самый простой способ - иметь класс config как синглтон.
Другим решением, предоставляемым из среды Spring, является сервер конфигурации.
Это предназначено для облака, но если ваше приложение и ваша конфигурация сложны и нуждаются в большем количестве функций, вы должны проверить эту возможность.