Необходимо передать динамический пароль классу базы данных Hikari CP

#connection-pooling #hikaricp

#объединение в пул соединений #hikaricp

Вопрос:

Нам нужно динамически передавать пароль в Hikari CP, чтобы всякий раз, когда мы меняем пароль базы данных, наш сервис мог использовать его без перезапуска. Я видел, что в классе PoolBase CP Hikari у нас есть newConnection() метод, в котором мы берем пароль из объекта конфигурации Hikari.

фрагмент, взятый из класса PooBase

 private Connection newConnection() throws Exception
    {
       final long start = currentTime();
 
       Connection connection = null;
       try {
          String username = config.getUsername();
          String password = config.getPassword();
 
          connection = (username == null) ? dataSource.getConnection() : dataSource.getConnection(username, password);
          if (connection == null) {
             throw new SQLTransientConnectionException("DataSource returned null unexpectedly");
          }
 
          setupConnection(connection);
          lastConnectionFailure.set(null);
          return connection;
       }
       catch (Exception e) {
          if (connection != null) {
             quietlyCloseConnection(connection, "(Failed to create/setup connection)");
          }
          else if (getLastConnectionFailure() == null) {
             logger.debug("{} - Failed to create/setup connection: {}", poolName, e.getMessage());
          }
 
          lastConnectionFailure.set(e);
          throw e;
       }
       finally {
          // tracker will be null during failFast check
          if (metricsTracker != null) {
             metricsTracker.recordConnectionCreated(elapsedMillis(start));
          }
       }
    }
 

Как я могу переопределить getPassword() метод, чтобы он мог использовать мой пользовательский метод для получения пароля, который приведет пароль из хранилища.