Я устанавливаю hikari.data-source-properties
с заполнителем, но значение заполнителя не подставляется. Это приложение на основе Spring-boot 2.1.4.RELEASE. Мое намерение состоит в том, чтобы установить свойства сеанса, чтобы администраторы баз данных могли идентифицировать мое приложение. В настоящее время я получаю значение по умолчанию JDBC Thin Client
для моего подключения при запуске SELECT PROGRAM FROM V$SESSION
из БД
Ниже приведено то, что у меня есть в моем application.yml
файле
spring:
datasource:
url: "jdbc:oracle:thin:@machine:1521:service_name"
driver-class-name: "oracle.jdbc.driver.OracleDriver"
hikari.data-source-properties:
v$session.program:${spring.application.name}
Ниже приведено то, что яесть в моем bootstrap.yml
файле
spring:
application:
name: ms-db-service
Когда я запрашиваю базу данных Oracle, я замечаю, что значение для программы буквально ${spring.application.name}
вместо ожидаемого значения ms-db-service
Я попробовал следующее, с тем же логическим результатом:
- Попытка переопределить
spring.application.name
снова в application.yml
- Попытка с использованием другого локально определенногоключ
${name}
- Добавлен следующий компонент
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
- Попытка указать свойство как таковое:
spring.datasource.hikari.data-source-properties: v$session.program=${spring.application.name}
Я попробовал следующие пункты, чтобы получить больше информации о ситуации:
- Я попытался использовать заполнитель для
spring.datasource.url
, и это сработало - Я попытался прочитатьзначение вручную, используя приведенный ниже код, и это показывает правильные значения:
@Value("${spring.datasource.hikari.data-source-properties}") String propVal;
Мой вывод заключается в том, что HikariCp читает этизначения до замены заполнителя. Я не понимаю относительную синхронизацию того, когда создание бина замещения и источника данных происходит в жизненном цикле бина с пружинной загрузкой
Я пытаюсь избежать использования bean
для источника данных hikaricp (не уверен, чтодаже решит проблему), так как я не хочу вручную создавать весь источник данных, так как hikari поддерживает огромное количество свойств.
Итак, как я могу установить spring.datasource.hikari.data-source-properties
в application.yml, используя заполнитель,И есть ли другой способ назначить spring.application.name
для идентификации моего текущего подключения к БД?