Pengantar CLI Spring Boot

1. Perkenalan

Spring Boot CLI adalah abstraksi baris perintah yang memungkinkan kita menjalankan layanan mikro Spring yang dinyatakan sebagai skrip Groovy dengan mudah . Ini juga menyediakan manajemen ketergantungan yang disederhanakan dan ditingkatkan untuk layanan tersebut.

Artikel singkat ini membahas sekilas cara mengkonfigurasi Spring Boot CLI dan menjalankan perintah terminal sederhana untuk menjalankan layanan mikro yang telah dikonfigurasi sebelumnya .

Kami akan menggunakan Spring Boot CLI 2.0.0. RILIS untuk artikel ini. Versi terbaru dari Spring Boot CLI dapat ditemukan di Maven Central.

2. Menyiapkan Spring Boot CLI

Salah satu cara termudah untuk mengatur Spring Boot CLI adalah dengan menggunakan SDKMAN. Petunjuk penyiapan dan penginstalan SDKMAN dapat ditemukan di sini.

Setelah menginstal SDKMAN, jalankan perintah berikut untuk menginstal dan mengkonfigurasi Spring Boot CLI secara otomatis:

$ sdk install springboot

Untuk memverifikasi penginstalan, jalankan perintah:

$ spring --version

Kami juga dapat menginstal Spring Boot CLI dengan mengkompilasi dari sumber, dan pengguna Mac dapat menggunakan paket pra-bangun dari Homebrew atau MacPorts. Lihat dokumen resmi untuk semua opsi instalasi.

3. Perintah Terminal Umum

Spring Boot CLI menyediakan beberapa perintah dan fitur yang berguna di luar kotak. Salah satu fitur yang paling membantu adalah Spring Shell, yang membungkus perintah dengan awalan pegas yang diperlukan .

Untuk memulai shell yang disematkan , kami menjalankan:

spring shell

Dari sini, kita bisa langsung memasukkan perintah yang diinginkan tanpa menunggu kata kunci pegas (karena kita sekarang berada di shell pegas).

Misalnya, kita dapat menampilkan versi CLI yang sedang berjalan dengan mengetik:

version

Salah satu perintah terpenting adalah memberi tahu Spring Boot CLI untuk menjalankan skrip Groovy:

run [SCRIPT_NAME].groovy

Spring Boot CLI akan secara otomatis menyimpulkan dependensi atau akan melakukannya dengan penjelasan yang diberikan dengan benar. Setelah ini, itu akan meluncurkan wadah web dan aplikasi yang disematkan.

Mari kita lihat lebih dekat bagaimana menggunakan script Groovy dengan Spring Boot CLI!

4. Skrip Groovy Esensial

Groovy dan Spring digabungkan dengan Spring Boot CLI untuk memungkinkan layanan mikro yang kuat dan berperforma cepat ditulis dalam skrip dalam penerapan Groovy file tunggal .

Dukungan untuk aplikasi multiply-scripted biasanya memerlukan fitur build tambahan seperti Maven atau Gradle.

Di bawah ini kami akan membahas beberapa kasus penggunaan paling umum untuk Spring Boot CLI, menyimpan penyiapan yang lebih rumit untuk artikel lainnya.

Untuk daftar semua anotasi Groovy yang didukung Spring, silakan lihat dokumen resmi.

4.1. @Mengambil

The @Grab penjelasan dan Jawa-esque Groovy impor klausul memungkinkan manajemen ketergantungan mudah dan injeksi .

Faktanya, sebagian besar anotasi mengabstraksikan, menyederhanakan, dan otomatis menyertakan pernyataan import yang diperlukan. Hal ini memungkinkan kami menghabiskan lebih banyak waktu untuk memikirkan tentang arsitektur dan logika yang mendasari layanan yang ingin kami terapkan.

Mari kita lihat cara menggunakan anotasi @Grab :

package org.test @Grab("spring-boot-starter-actuator") @RestController class ExampleRestController{ //... }

Seperti yang bisa kita lihat, spring-boot-starter-actuator hadir dengan pra-konfigurasi yang memungkinkan penerapan skrip ringkas tanpa memerlukan aplikasi yang disesuaikan atau properti lingkungan, XML , atau konfigurasi programatik lainnya , meskipun masing-masing hal tersebut dapat ditentukan bila perlu.

Daftar lengkap argumen @Grab - masing-masing menentukan pustaka untuk diunduh dan diimpor - tersedia di sini.

4.2. @Controller, @RestController, dan @EnableWebMvc

Untuk mempercepat penerapan lebih lanjut, sebagai alternatif, kita dapat memanfaatkan "petunjuk pengambilan" yang disediakan CLI Spring Boot untuk secara otomatis menyimpulkan dependensi yang benar untuk diimpor .

Kami akan membahas beberapa kasus penggunaan paling umum di bawah ini.

For example, we can use the familiar @Controller and @Service annotations to quickly scaffold a standard MVC controller and service:

@RestController class Example { @Autowired private MyService myService; @GetMapping("/") public String helloWorld() { return myService.sayWorld(); } } @Service class MyService { public String sayWorld() { return "World!"; } }

Spring Boot CLI supports all default configuration for Spring Boot. So, we can our Groovy apps will automatically access static resources from their usual default locations.

4.3. @EnableWebSecurity

To add Spring Boot Security options to our app, we can use the @EnableWebSecurity annotation, which will then be automatically downloaded by Spring Boot CLI.

Below, we'll abstract part of this process using the spring-boot-starter-security dependency, which leverages the @EnableWebSecurity annotation under the hood:

package bael.security @Grab("spring-boot-starter-security") @RestController class SampleController { @RequestMapping("/") public def example() { [message: "Hello World!"] } } 

For more details on how to protect resources and handle security, please check out the official documentation.

4.4. @Test

To set up a simple JUnit test, we can add the @Grab(‘junit') or @Test annotations:

package bael.test @Grab('junit') class Test { //... }

This will allow us to execute JUnit tests easily.

4.5. DataSource and JdbcTemplate

Persistent data options can be specified including DataSource or JdbcTemplate without explicitly using the @Grab annotation:

package bael.data @Grab('h2') @Configuration @EnableWebMvc @ComponentScan('bael.data') class DataConfig { @Bean DataSource dataSource() { return new EmbeddedDatabaseBuilder() .setType(EmbeddedDatabaseType.H2).build(); } }

By simply using familiar Spring bean configuration conventions, we've grabbed the H2 embedded database and set it as the DataSource.

5. Custom Configuration

Ada dua cara utama untuk mengkonfigurasi layanan mikro Spring Boot menggunakan Spring Boot CLI:

  1. kita dapat menambahkan parameter argumen ke perintah terminal kita
  2. kita dapat menggunakan file YAML yang disesuaikan untuk menyediakan konfigurasi aplikasi

Spring Boot secara otomatis akan mencari direktori / config untuk application.yml atau application.properties

├── app ├── app.groovy ├── config ├── application.yml ... 

Kami juga dapat menyiapkan:

├── app ├── example.groovy ├── example.yml ...

Daftar lengkap properti aplikasi dapat ditemukan di sini di Spring.

6. Kesimpulan

Ini menyimpulkan panduan singkat kami tentang Spring Boot CLI! Untuk lebih jelasnya, lihat dokumen resmi.

Dan seperti biasa, kode sumber untuk artikel ini dapat ditemukan di GitHub.