Рубрики
Без рубрики

Настройка пула соединений Hikari с помощью Spring Boot

Узнайте, как настроить HikariCP в приложениях Spring Boot (1 и 2) .

Автор оригинала: 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 доступен здесь .