Spring Boot - Конфигурация базы данных Hikari - PullRequest
0 голосов
/ 28 августа 2018

Недавно работал над переносом кода в Spring Boot 2.x и столкнулся с проблемой настройки bean-компонента источника данных. У нас есть два источника данных, поэтому мы строим компоненты DataSource вручную, используя DataSourceBuilder.

Согласно документации , я устанавливаю следующие свойства:

spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.username=sa
spring.datasource.password=

Однако, когда я это делаю, я получаю следующую ошибку:

java.lang.IllegalArgumentException: jdbcUrl is required with driverClassName.
at com.zaxxer.hikari.HikariConfig.validate(HikariConfig.java:1059) ~[HikariCP-2.7.9.jar:na]
at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:109) ~[HikariCP-2.7.9.jar:na]

Если я изменю свои настройки, чтобы сделать это:

spring.datasource.jdbcUrl=jdbc:mysql://localhost/test

тогда это работает.

Это также работает для одного источника данных, если я закомментирую bean-компонент, который явно создает источник данных, что наводит меня на мысль, что есть проблема в коде источника данных.

Пример репозитория с одним источником данных, показывающим проблему, доступен здесь: https://github.com/azizabah/hikari-issue

Так что же изменилось между SB 1.5.X и SB 2.X с точки зрения конфигурации при наличии нескольких источников данных?

1 Ответ

0 голосов
/ 29 августа 2018

Вам не хватает конфигурации DataSourceProperties и вы пытаетесь подключиться напрямую.

Вам необходимо следовать следующей документации, чтобы достичь того, что вы хотите сделать в первую очередь: https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-two-datasources

Кстати, кто-то сделал ту же ошибку и поднял ее как ошибку в git, если вы хотите, чтобы ту же документацию называли решением: https://github.com/spring-projects/spring-boot/issues/12758

...