Я пытаюсь настроить один простой источник данных 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?