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 е наличен тук.