Ответ
Spring Boot использует четкий алгоритм выбора источника данных (DataSource), который определяет, какой пул соединений будет использован.
Порядок приоритета (от высшего к низшему):
- Явное указание в конфигурации: Если в свойствах (например,
application.properties) заданspring.datasource.type, будет использован именно этот класс.spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource - Наличие кастомного пула в classpath: Если в зависимостях проекта есть библиотека пула соединений (например, Tomcat JDBC, Commons DBCP2), Spring Boot отдаст приоритет ей, а не HikariCP.
- Стандартный выбор (по умолчанию): Если ни одно из условий выше не выполнено, Spring Boot автоматически настраивает HikariCP, при условии, что он находится в classpath (что верно для
spring-boot-starter-data-jpaилиspring-boot-starter-jdbc).
Практический вывод: При добавлении зависимости кастомного пула (например, tomcat-jdbc) он будет выбран автоматически. Чтобы гарантированно использовать HikariCP, нужно либо исключить другие пулы, либо явно указать spring.datasource.type=com.zaxxer.hikari.HikariDataSource.