Автор оригинала: Tom Hombergs.
1. Обзор
Hikari – это реализация JDBC DataSource , которая обеспечивает механизм пула соединений.
По сравнению с другими реализациями, он обещает быть легким и более производительным . Для ознакомления с Хикари см. эту статью .
В этом кратком руководстве показано, как настроить приложение Spring Boot 2 или Spring Boot 1 для использования Hikari DataSource .
Дальнейшее чтение:
Отношения “Один к одному” в JPA
Весенняя загрузка с гибернацией
2. Настройка Hikari С Помощью Spring Boot 2.x
В Spring Boot 2 Hikari является реализацией источника данных по умолчанию.
Это то, что изменилось с Spring Boot 1.x:
- зависимость от Hikari теперь автоматически включается в spring-boot-starter-data-jpa и spring-boot-starter-jdbc
- алгоритм обнаружения, автоматически определяющий реализацию Источника данных , теперь предпочитает Hikari TomcatJDBC (см. справочное руководство ).
Таким образом, нам нечего делать, если мы хотим использовать Hikari в приложении, основанном на Spring Boot 2.x.
3. Настройка Параметров конфигурации Hikari
Одним из преимуществ Hikari перед другими реализациями Data Source является тот факт, что он предлагает множество параметров конфигурации.
Мы можем указать значения этих параметров, используя префикс spring.datasource.hikari и добавив имя параметра Hikari:
spring.datasource.hikari.connectionTimeout=30000 spring.datasource.hikari.idleTimeout=600000 spring.datasource.hikari.maxLifetime=1800000 ...
Список всех параметров Хикари с хорошим объяснением доступен на Сайт Hikari Github , а также в Spring docs .
4. Настройка Hikari С Помощью Spring Boot 1.x
Spring Boot 1.x по умолчанию использует пул соединений Tomcat JDBC .
Как только мы включим spring-boot-starter-data-jpa в наш pom.xml , мы транзитивно включим зависимость в реализацию Tomcat JDBC. Во время выполнения Spring Boot создаст для нас Tomcat Источник данных .
Чтобы настроить Spring Boot на использование пула соединений Hikari, у нас есть два варианта.
4.1. Зависимость Maven
Во-первых, нам нужно включить зависимость от Хикари в нашу pom.xml :
com.zaxxer HikariCP 3.2.0
Самую последнюю версию можно найти на Maven Central .
4.2. Явная конфигурация
Самый безопасный способ указать Spring Boot использовать Hikari-это явная настройка реализации источника данных.
Для этого мы просто задаем свойству spring.datasource.type полное имя реализации DataSource , которую мы хотим использовать:
@RunWith(SpringRunner.class) @SpringBootTest( properties = "spring.datasource.type=com.zaxxer.hikari.HikariDataSource" ) public class HikariIntegrationTest { @Autowired private DataSource dataSource; @Test public void hikariConnectionPoolIsConfigured() { assertEquals("com.zaxxer.hikari.HikariDataSource", dataSource.getClass().getName()); } }
4.3. Удаление зависимости Tomcat JDBC
Второй вариант-позволить Spring Boot найти саму реализацию Hikari DataSource .
Если Spring Boot не может найти Tomcat DataSource в пути к классу, он автоматически будет искать Hikari DataSource next. Алгоритм обнаружения описан в справочном руководстве .
Чтобы удалить пул соединений Tomcat из пути к классам, мы можем исключить его из вашего pom.xml :
org.springframework.boot spring-boot-starter-data-jpa org.apache.tomcat tomcat-jdbc
Теперь тест из предыдущего раздела также будет работать без установки свойства spring.datasource.type .
5. Заключение
В этой статье мы настроили реализацию Hikari DataSource в приложении Spring Boot 2.x и узнали, как использовать автоконфигурацию Spring Boot. Мы также рассмотрели изменения, необходимые для настройки Hikari при использовании Spring Boot 1.x.
Код для примера Spring Boot 1.x доступен здесь , а код для примера Spring Boot 2.x доступен здесь .