Spring Boot Tanpa Pelayan Web

1. Pengenalan

Spring Boot adalah kerangka yang bagus untuk membuat aplikasi Java baru dengan cepat untuk pelbagai kes penggunaan. Salah satu kegunaan yang paling popular adalah sebagai pelayan web, menggunakan salah satu dari banyak wadah servlet tertanam dan mesin templat.

Walau bagaimanapun, Spring Boot mempunyai sejumlah kegunaan yang tidak memerlukan pelayan web : aplikasi konsol, penjadualan tugas, pemprosesan kumpulan atau aliran, aplikasi tanpa pelayan, dan banyak lagi.

Dalam tutorial ini, kita akan melihat beberapa cara yang berbeza untuk menggunakan Spring Boot tanpa pelayan web.

2. Menggunakan Pergantungan

Cara termudah untuk mengelakkan aplikasi Spring Boot memulakan pelayan web terbenam adalah dengan tidak memasukkan starter pelayan web dalam pergantungan kami .

Ini bermaksud tidak termasuk kebergantungan spring-boot-starter-web dalam fail build Maven POM atau Gradle. Sebagai gantinya, kami ingin menggunakan pergantungan spring-boot-starter yang lebih asas di tempatnya.

Perlu diingat kemungkinan pergantungan Tomcat dimasukkan ke dalam aplikasi kita sebagai pergantungan transitif . Dalam kes ini, kita mungkin perlu mengecualikan perpustakaan Tomcat dari mana-mana pergantungan yang menyertakannya.

3. Mengubah Permohonan Musim Semi

Cara lain untuk melumpuhkan pelayan web tertanam dalam Spring Boot adalah dengan menggunakan kod. Kita boleh menggunakan SpringApplicationBuilder :

new SpringApplicationBuilder(MainApplication.class) .web(WebApplicationType.NONE) .run(args);

Atau kita boleh menggunakan rujukan untuk SpringApplication :

SpringApplication application = new SpringApplication(MainApplication.class); application.setWebApplicationType(WebApplicationType.NONE); application.run(args);

Dalam kedua-dua kes tersebut, kami mempunyai kelebihan untuk menyimpan servlet dan container API yang tersedia di classpath . Ini bermaksud kita masih boleh menggunakan perpustakaan pelayan web tanpa memulakan pelayan web. Ini boleh berguna, misalnya, jika kita ingin menggunakannya untuk menulis ujian atau menggunakan API mereka dalam kod kita sendiri.

4. Menggunakan Sifat Aplikasi

Menggunakan kod untuk melumpuhkan pelayan web adalah pilihan statik - ia akan mempengaruhi aplikasi kita di mana pun kita menggunakannya. Tetapi bagaimana jika kita ingin membuat pelayan web dalam keadaan tertentu?

Dalam kes ini, kita dapat menggunakan sifat aplikasi Spring:

spring.main.web-application-type=none

Atau menggunakan YAML yang setara:

spring: main: web-application-type: none

Manfaat dari pendekatan ini adalah kita dapat mengaktifkan pelayan web secara bersyarat . Dengan menggunakan profil atau syarat Spring, kita dapat mengawal tingkah laku pelayan web dalam penggunaan yang berbeza.

Sebagai contoh, pelayan web dapat dijalankan dalam pembangunan hanya untuk memaparkan metrik atau titik akhir Spring yang lain sambil memastikan ia dilumpuhkan dalam pengeluaran atas sebab keselamatan.

Perhatikan bahawa beberapa versi Spring Boot sebelumnya menggunakan harta boolean bernama web-environment untuk mengaktifkan dan mematikan pelayan web. Dengan penggunaan bekas tradisional dan reaktif di Spring Boot, harta tanah itu telah diganti namanya dan kini menggunakan enum .

5. Kesimpulan

Terdapat banyak sebab untuk membuat aplikasi Spring Boot tanpa pelayan web. Dalam tutorial ini, kami telah melihat pelbagai cara untuk melakukannya. Masing-masing mempunyai kebaikan dan keburukan, jadi kita harus memilih pendekatan yang paling sesuai dengan keperluan kita.