Объявление источника данных Hikari при сбое приложения из-за свойства `jdbcUrl` Hikari - PullRequest
0 голосов
/ 25 апреля 2019

Я пытаюсь настроить один простой источник данных Hikari и другой источник данных, который является реализацией SpringR AbstractRoutingDataSource. Я хочу использовать простой источник данных в качестве моего defaultTargetDataSource.

Я хочу позволить Spring создать простой HikariDataSource со всей конфигурацией на основе файла свойств.

Когда я вообще не объявляю bean-компоненты DataSource и просто устанавливаю свойство spring.datasource.url, все хорошо.

Но когда я сам пытаюсь создать простой компонент Hikari DataSource любым из следующих способов, я получаю сообщение об ошибке:

Caused by: java.lang.IllegalArgumentException: dataSource or 
  dataSourceClassName or jdbcUrl is required.
  at 
  com.zaxxer.hikari.HikariConfig.validate(HikariConfig.java:955)

То, что я пробовал

@ConfigurationProperties(prefix = "spring.datasource")
DataSource defaultDataSource() {
  return new HikariDataSource();
}

@ConfigurationProperties(prefix = "spring.datasource")
DataSource defaultDataSource() {
  return DataSourceBuilder.create().build();
}

изменение свойства, которое я пробовал:

spring.datasource.url
spring.datasource.jdbcUrl
spring.datasource.jdbc-url

Я использую зависимость spring-boot-starter-data-jpa в своем pom.xml, и когда я сам не создаю источник данных, Spring создает для меня источник по умолчанию, который отлично работает.

Как получить пружину для правильной настройки и предоставить мне простой источник данных Hikari?

Я знаю, что Spring отступает и вообще не создает никакого источника данных, когда я создаю свою реализацию AbstractRoutingDataSource. Если есть способ предотвратить откат до @Autowire этого dataSource bean-компонента, этот подход будет работать и для меня.

PS: я видел этот вопрос, но он не отвечает на мой вопрос: Как настроить HikariCP в моем приложении Spring Boot в моих файлах application.properties?

...