Configuration d'un pool de connexions Hikari avec un démarrage initial
1. Vue d'ensemble
Hikari est une implémentation de JDBCDataSource qui fournit un mécanisme de regroupement de connexions.
Comparé à d'autres implémentations, il promet d'être léger etbetter performing. Pour une introduction à Hikari, voirthis article.
Ce tutoriel rapide montre comment configurer une application Spring Boot 1 ou Spring Boot 2 pour utiliser les HikariDataSource.
Lectures complémentaires:
Relation un à un dans JPA
Apprenez trois façons différentes de maintenir une relation personnalisée avec JPA.
Botte de printemps avec Hibernate
Une introduction rapide et pratique à l'intégration de Spring Boot et Hibernate / JPA.
2. Configurer Hikari avec Spring Boot 1.x
Spring Boot 1.x utilise lesTomcat JDBC Connection Pool par défaut.
Dès que nous incluonsspring-boot-starter-data-jpa dans nospom.xml, nous inclurons transitivement une dépendance à l'implémentation JDBC Tomcat. Pendant l'exécution, Spring Boot créera ensuite un TomcatDataSource que nous utiliserons.
Pour configurer Spring Boot afin qu'il utilise le pool de connexions Hikari à la place, nous vous proposons deux options.
2.1. Dépendance Maven
Tout d'abord, nous devons inclure la dépendance sur Hikari dans nospom.xml:
com.zaxxer
HikariCP
3.2.0
La version la plus récente peut être trouvée surMaven Central.
2.2. Configuration explicite
Le moyen le plus sûr de dire à Spring Boot d'utiliser Hikari est de configurer explicitement l'implémentation de DataSource.
Pour ce faire, nous avons simplementset the property spring.datasource.type to the fully-qualified name of the DataSource implementation we want to use:
@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());
}
}
2.3. Suppression de la dépendance Tomcat JDBC
La deuxième option consiste à laisser Spring Boot trouver elle-même l'implémentation de HikariDataSource.
If Spring Boot cannot find the Tomcat DataSource in the classpath, it will automatically look for the Hikari DataSource next. L'algorithme de découverte est décrit dans lesreference manual.
Pour supprimer le pool de connexions Tomcat du chemin de classe, nous pouvons l'exclure dans nospom.xml:
org.springframework.boot
spring-boot-starter-data-jpa
org.apache.tomcat
tomcat-jdbc
Désormais, le test de la section précédente fonctionnera également sans définir la propriétéspring.datasource.type.
3. Configurer Hikari avec Spring Boot 2.x
Dans Spring Boot 2, Hikari est l'implémentation DataSource par défaut.
Voici ce qui a changé depuis Spring Boot 1.x:
-
la dépendance à Hikari est désormais automatiquement incluse dansspring-boot-starter-data-jpa
-
l'algorithme de découverte qui détermine automatiquement une implémentation deDataSource préfère désormais Hikari à TomcatJDBC (voir lesreference manual).
Ainsi, nous n'avons rien à faire si nous voulons utiliser Hikari dans une application basée sur Spring Boot 2.x.
4. Réglage des paramètres de configuration Hikari
L’un des avantages d’Hikari par rapport aux autres implémentations deDataSourceest le fait qu’il offre de nombreux paramètres de configuration.
Nous pouvons spécifier les valeurs de ces paramètres en utilisant le préfixespring.datasource.hikari et en ajoutant le nom du paramètre Hikari:
spring.datasource.hikari.connectionTimeout=30000
spring.datasource.hikari.idleTimeout=600000
spring.datasource.hikari.maxLifetime=1800000
...
Une liste de tous les paramètres Hikari avec une bonne explication est disponible sur lesHikari Github Site.
5. Conclusion
Dans cet article, nous avons configuré l'implémentation de HikariDataSourcedans une application Spring Boot 1.x et appris à tirer parti de la configuration automatique de Spring Boot 2.x.