Mengonfigurasi Pool Koneksi Hikari dengan Spring Boot

1. Ikhtisar

Hikari adalah implementasi JDBC DataSource yang menyediakan mekanisme penyatuan koneksi.

Dibandingkan dengan implementasi lain, implementasi ini menjanjikan bobot yang ringan dan performa yang lebih baik. Untuk pengantar Hikari, lihat artikel ini.

Tutorial singkat ini menunjukkan bagaimana kita dapat mengkonfigurasi aplikasi Spring Boot 2 atau Spring Boot 1 untuk menggunakan Hikari DataSource .

2. Konfigurasi Hikari Dengan Spring Boot 2.x

Di Spring Boot 2, Hikari adalah implementasi DataSource default.

Inilah yang berubah dari Spring Boot 1.x:

  • ketergantungan pada Hikari sekarang secara otomatis disertakan dalam spring-boot-starter-data-jpa dan spring-boot-starter-jdbc
  • algoritma penemuan yang secara otomatis menentukan implementasi DataSource sekarang lebih memilih Hikari daripada TomcatJDBC (lihat manual referensi).

Jadi, kami tidak ada hubungannya jika kami ingin menggunakan Hikari dalam aplikasi berbasis Spring Boot 2.x.

3. Tuning Parameter Konfigurasi Hikari

Salah satu keunggulan Hikari dibandingkan implementasi DataSource lainnya adalah kenyataan bahwa ia menawarkan banyak parameter konfigurasi.

Kita dapat menentukan nilai untuk parameter ini dengan menggunakan awalan spring.datasource.hikari dan menambahkan nama parameter Hikari:

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

Daftar semua parameter Hikari dengan penjelasan yang baik tersedia di Situs Hikari Github, serta di dokumen Spring.

4. Konfigurasi Hikari Dengan Spring Boot 1.x

Spring Boot 1.x menggunakan Tomcat JDBC Connection Pool secara default.

Segera setelah kami menyertakan spring-boot-starter-data-jpa ke dalam pom.xml kami , kami akan secara transitif menyertakan dependensi ke implementasi Tomcat JDBC. Selama runtime, Spring Boot akan membuat Tomcat DataSource untuk kita gunakan.

Untuk mengonfigurasi Spring Boot agar menggunakan Hikari Connection Pool, kami memiliki dua opsi.

4.1. Ketergantungan Maven

Pertama, kita perlu memasukkan ketergantungan pada Hikari di pom.xml kita :

 com.zaxxer HikariCP 3.2.0 

Versi terbaru dapat ditemukan di Maven Central.

4.2. Konfigurasi Eksplisit

Cara paling aman untuk memberi tahu Spring Boot untuk menggunakan Hikari adalah mengonfigurasi implementasi DataSource secara eksplisit.

Untuk melakukan ini, kami cukup menyetel properti spring.datasource.type ke nama yang sepenuhnya memenuhi syarat dari implementasi DataSource yang ingin kami gunakan:

@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. Menghapus Dependensi JDBC Tomcat

Opsi kedua adalah membiarkan Spring Boot menemukan implementasi Hikari DataSource itu sendiri.

Jika Spring Boot tidak dapat menemukan Tomcat DataSource di classpath, maka secara otomatis akan mencari Hikari DataSource berikutnya. Algoritma penemuan dijelaskan dalam manual referensi.

Untuk menghapus Tomcat Connection Pool dari classpath kita bisa mengecualikannya di pom.xml kita :

 org.springframework.boot spring-boot-starter-data-jpa   org.apache.tomcat tomcat-jdbc   

Sekarang, pengujian dari bagian sebelumnya juga akan bekerja tanpa menyetel properti spring.datasource.type .

5. Kesimpulan

Di artikel ini, kami telah mengonfigurasi implementasi Hikari DataSource di aplikasi Spring Boot 2.x dan mempelajari cara memanfaatkan konfigurasi otomatis Spring Boot. Kami juga telah melihat perubahan yang diperlukan untuk mengkonfigurasi Hikari saat menggunakan Spring Boot 1.x.

Kode untuk contoh Spring Boot 1.x tersedia di sini, dan kode untuk contoh Spring Boot 2.x tersedia di sini.