Konfigurere et Hikari Connection Pool med Spring Boot
1. Oversikt
Hikari er en JDBC Datakilde implementering som gir en sammenkoblingsmekanisme.
Sammenlignet med andre implementeringer, lover den å være lett og bedre. For en introduksjon til Hikari, se denne artikkelen.
Denne raske opplæringen viser hvordan vi kan konfigurere en Spring Boot 2 eller Spring Boot 1-applikasjon til å bruke Hikari Datakilde.
2. Konfigurere Hikari med Spring Boot 2.x
I Spring Boot 2 er Hikari standard implementering av DataSource.
Dette er det som er endret fra Spring Boot 1.x:
- avhengigheten til Hikari er nå automatisk inkludert i spring-boot-starter-data-jpa og spring-boot-starter-jdbc
- oppdagelsesalgoritmen som automatisk bestemmer en Datakilde implementering foretrekker nå Hikari fremfor TomcatJDBC (se referansehåndboken).
Dermed har vi ingenting å gjøre hvis vi vil bruke Hikari i en applikasjon basert på Spring Boot 2.x.
3. Innstilling av Hikari-konfigurasjonsparametere
En av Hikaris fordeler fremfor andre Datakilde implementeringer er det faktum at det tilbyr mange konfigurasjonsparametere.
Vi kan spesifisere verdiene for disse parametrene ved å bruke prefikset våren.datasource.hikari og legge til navnet på Hikari-parameteren:
spring.datasource.hikari.connectionTimeout = 30000 spring.datasource.hikari.idleTimeout = 600000 spring.datasource.hikari.maxLifetime = 1800000 ...
En liste over alle Hikari-parametere med en god forklaring er tilgjengelig på Hikari Github-nettstedet, samt i vårdokumentene.
4. Konfigurere Hikari med Spring Boot 1.x
Spring Boot 1.x bruker Tomcat JDBC Connection Pool som standard.
Så snart vi inkluderer spring-boot-starter-data-jpa inn i vår pom.xml, vil vi midlertidig inkludere en avhengighet av Tomcat JDBC-implementeringen. I løpet av kjøretiden vil Spring Boot lage en Tomcat Datakilde for oss å bruke.
For å konfigurere Spring Boot til å bruke Hikari Connection Pool i stedet, har vi to alternativer.
4.1. Maven avhengighet
Først må vi inkludere avhengigheten av Hikari i vår pom.xml:
com.zaxxer HikariCP 3.2.0
Den nyeste versjonen finner du på Maven Central.
4.2. Eksplisitt konfigurasjon
Den sikreste måten å fortelle Spring Boot å bruke Hikari er å konfigurere DataSource-implementeringen eksplisitt.
For å gjøre dette, vi bare angi eiendommen spring.datasource.type til det fullt kvalifiserte navnet på Datakilde implementering vi ønsker å bruke:
@RunWith (SpringRunner.class) @SpringBootTest (egenskaper = "spring.datasource.type = com.zaxxer.hikari.HikariDataSource") offentlig klasse HikariIntegrationTest {@Autowired private DataSource dataSource; @Test offentlig ugyldig hikariConnectionPoolIsConfigured () {assertEquals ("com.zaxxer.hikari.HikariDataSource", dataSource.getClass (). GetName ()); }}
4.3. Fjerne Tomcat JDBC-avhengighet
Det andre alternativet er å la Spring Boot finne Hikari Datakilde selve implementeringen.
Hvis Spring Boot ikke finner Tomcat Datakilde i klassestien vil den automatisk se etter Hikari Datakilde neste. Funnalgoritmen er beskrevet i referansehåndboken.
For å fjerne Tomcat Connection Pool fra klassestien kan vi ekskludere den i vår pom.xml:
org.springframework.boot spring-boot-starter-data-jpa org.apache.tomcat tomcat-jdbc
Nå vil testen fra forrige avsnitt også fungere uten å stille inn spring.datasource.type eiendom.
5. Konklusjon
I denne artikkelen har vi konfigurert Hikari Datakilde implementering i en Spring Boot 2.x-applikasjon og lærte å utnytte Spring Boots autokonfigurasjon. Vi har også sett på endringene som kreves for å konfigurere Hikari når du bruker Spring Boot 1.x.
Koden for Spring Boot 1.x-eksemplet er tilgjengelig her, og koden for Spring Boot 2.x-eksemplet er tilgjengelig her.