Запрос состоит в том, чтобы изменить пароль соединения mongodb во время выполнения в проекте весенней загрузки. Например, предположим, что соединение mongodb установлено при запуске приложения с паролем «xyz». Я хотел бы изменить пароль во время выполнения, скажем, нажав API. До сих пор я пробовал следующие решения для решения этой проблемы:
- Замена bean-компонента mongoTemplate во время выполнения. Попытка создать новый bean-компонент mongoTemplate с новым паролем во время выполнения и заменить его в контексте, используя методы, указанные ниже ссылка. Проблема с этим подходом заключается в том, что компонент обновляется только один раз. В идеале он должен работать каждый раз, когда вызывается API для обновления пароля.
- Обновление пароля в mongoCredentials. Один из очевидных подходов — обновить пароль непосредственно в mongoCredentials, поскольку mongoTemplate использует класс mongoCredential для хранения информации об учетных данных. Но проблема в том, что поле пароля в классе MongoCredentials равно '< em>final static», поэтому мы не можем обновить его даже с помощью отражений. Несмотря на то, что есть некоторые хитрости для обновления финальных статических полей, я ищу более приемлемое решение.