Конфигуриране на Hikari Connection Pool с Spring Boot

1. Общ преглед

Hikari е реализация на JDBC DataSource, която осигурява механизъм за обединяване на връзки.

В сравнение с други внедрения, той обещава да бъде лек и по-добър. За въведение в Hikari вижте тази статия.

Този бърз урок показва как можем да конфигурираме приложението Spring Boot 2 или Spring Boot 1, за да използваме Hikari DataSource .

2. Конфигуриране на Hikari с Spring Boot 2.x

В Spring Boot 2 Hikari е изпълнението на DataSource по подразбиране.

Ето какво се промени от Spring Boot 1.x:

  • зависимостта от Hikari вече се включва автоматично в spring-boot-starter-data-jpa и spring-boot-starter-jdbc
  • алгоритъмът за откриване, който автоматично определя изпълнение на DataSource, сега предпочита Hikari пред TomcatJDBC (вижте справочното ръководство).

По този начин няма какво да правим, ако искаме да използваме Hikari в приложение, базирано на Spring Boot 2.x.

3. Настройка на конфигурационни параметри на Hikari

Едно от предимствата на Hikari пред други реализации на DataSource е фактът, че той предлага много конфигурационни параметри.

Можем да посочим стойностите за тези параметри, като използваме префикса spring.datasource.hikari и добавим името на параметъра Hikari:

spring.datasource.hikari.connectionTimeout=30000 spring.datasource.hikari.idleTimeout=600000 spring.datasource.hikari.maxLifetime=1800000 ...

Списък с всички параметри на Hikari с добро обяснение е достъпен на сайта на Hikari Github, както и в пролетните документи.

4. Конфигуриране на Hikari с Spring Boot 1.x

Spring Boot 1.x използва Tomcat JDBC Connection Pool по подразбиране.

Веднага щом включим spring-boot-starter-data-jpa в нашия pom.xml , ние преходно ще включим зависимост към изпълнението на Tomcat JDBC. По време на изпълнение Spring Boot ще създаде Tomcat DataSource , който да използваме.

За да конфигурираме Spring Boot да използва вместо това Hikari Connection Pool, имаме две възможности.

4.1. Зависимост на Maven

Първо, трябва да включим зависимостта от Hikari в нашия pom.xml :

 com.zaxxer HikariCP 3.2.0 

Най-актуалната версия може да бъде намерена на Maven Central.

4.2. Изрична конфигурация

Най-безопасният начин да кажете на Spring Boot да използва Hikari е конфигурирането на изпълнението на DataSource изрично.

За да направите това, ние просто задаваме свойството 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 следващия. Алгоритъмът за откриване е описан в справочното ръководство.

За да премахнем Tomcat Connection Pool от пътя на класа, можем да го изключим в нашия 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 е наличен тук.