Pengenalan Spring CLI

1. Pengenalan

Spring Boot CLI adalah abstraksi baris perintah yang membolehkan kita dengan mudah menjalankan perkhidmatan mikro Spring yang dinyatakan sebagai skrip Groovy . Ia juga menyediakan pengurusan pergantungan yang dipermudah dan ditingkatkan untuk perkhidmatan tersebut.

Artikel pendek ini melihat bagaimana cara mengkonfigurasi Spring Boot CLI dan melaksanakan perintah terminal mudah untuk menjalankan perkhidmatan mikro yang telah dikonfigurasi sebelumnya .

Kami akan menggunakan Spring Boot CLI 2.0.0. SIARAN untuk artikel ini. Versi terbaru Spring Boot CLI boleh didapati di Maven Central.

2. Menyiapkan CLI Spring Boot

Salah satu kaedah termudah untuk menyiapkan Spring Boot CLI adalah dengan menggunakan SDKMAN. Arahan penyediaan dan pemasangan untuk SDKMAN boleh didapati di sini.

Setelah memasang SDKMAN, jalankan arahan berikut untuk memasang dan mengkonfigurasi Spring Boot CLI secara automatik:

$ sdk install springboot

Untuk mengesahkan pemasangan, jalankan arahan:

$ spring --version

Kami juga boleh memasang Spring Boot CLI dengan menyusun dari sumber, dan pengguna Mac dapat menggunakan pakej pra-binaan dari Homebrew atau MacPorts. Lihat dokumen rasmi untuk semua pilihan pemasangan.

3. Perintah Terminal Biasa

Spring Boot CLI memberikan beberapa arahan dan ciri berguna di luar kotak. Salah satu ciri yang paling berguna adalah Spring Shell, yang membungkus perintah dengan awalan spring yang diperlukan .

Untuk memulakan shell tertanam , kami menjalankan:

spring shell

Dari sini, kita dapat memasukkan arahan yang diinginkan secara langsung tanpa menunggu kata kunci musim bunga (kerana kita sekarang berada di cangkang musim bunga)

Sebagai contoh, kita dapat memaparkan versi CLI yang sedang berjalan dengan menaip:

version

Salah satu arahan yang paling penting adalah memberitahu Spring Boot CLI untuk menjalankan skrip Groovy:

run [SCRIPT_NAME].groovy

Spring Boot CLI sama ada membuat kesimpulan secara automatik atau akan melakukannya memandangkan anotasi yang diberikan dengan betul. Selepas ini, ia akan melancarkan wadah dan aplikasi web terbenam.

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

4. Skrip Groovy Penting

Groovy dan Spring disatukan dengan Spring Boot CLI untuk membolehkan perkhidmatan mikro yang hebat dan berprestasi cepat ditulis dalam penyebaran Groovy satu fail .

Sokongan untuk aplikasi berbilang skrip biasanya memerlukan alat binaan tambahan seperti Maven atau Gradle.

Di bawah ini kita akan membahas beberapa kes penggunaan yang paling biasa untuk Spring Boot CLI, menyediakan persediaan yang lebih kompleks untuk artikel lain.

Untuk senarai semua anotasi Groovy yang disokong oleh musim bunga, sila lihat dokumen rasmi.

4.1. @Grab

The @Grab anotasi dan Java-esque Groovy ini import fasal membolehkan pengurusan pergantungan mudah dan suntikan .

Sebenarnya, kebanyakan anotasi abstrak, ringkas, dan secara automatik menyertakan pernyataan import yang diperlukan. Ini membolehkan kita meluangkan lebih banyak masa untuk memikirkan seni bina dan logik asas perkhidmatan yang ingin kita gunakan.

Mari lihat bagaimana menggunakan anotasi @Grab :

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

Seperti yang dapat kita lihat, spring-boot-starter-actuator dilengkapi dengan pra-konfigurasi yang membolehkan penyebaran skrip ringkas tanpa memerlukan aplikasi khusus atau sifat persekitaran, XML , atau konfigurasi programatik yang lain , walaupun setiap perkara dapat ditentukan bila perlu.

Senarai lengkap argumen @Grab - masing-masing menentukan perpustakaan untuk dimuat turun dan diimport - boleh didapati di sini.

4.2. @Controller, @RestController, dan @EnableWebMvc

Untuk mempercepat penerapan, kami dapat menggunakan Spring Boot CLI yang disediakan "petunjuk petunjuk" untuk secara automatik menyimpulkan dependensi yang betul untuk diimport .

Kami akan membahas beberapa kes penggunaan yang paling biasa di bawah.

Sebagai contoh, kita boleh menggunakan anotasi @Controller dan @Service yang sudah biasa untuk membuat perancah dan perkhidmatan MVC standard dengan cepat :

@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 menyokong semua konfigurasi lalai untuk Spring Boot. Oleh itu, kita dapat aplikasi Groovy kita secara automatik mengakses sumber statik dari lokasi lalai biasa mereka.

4.3. @ EnableWebSecurity

Untuk menambahkan pilihan Spring Boot Security ke aplikasi kami , kami dapat menggunakan anotasi @EnableWebSecurity , yang kemudian akan dimuat turun secara automatik oleh Spring Boot CLI.

Di bawah ini, kami akan melengkapkan sebahagian daripada proses ini menggunakan pergantungan keselamatan-boot-starter-security , yang memanfaatkan anotasi @EnableWebSecurity di bawah tudung:

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

Terdapat dua cara utama untuk mengkonfigurasi perkhidmatan mikro Spring Boot menggunakan Spring Boot CLI:

  1. kita boleh menambahkan parameter argumen pada perintah terminal kita
  2. kita dapat menggunakan fail YAML yang disesuaikan untuk menyediakan konfigurasi aplikasi

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

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

Kami juga boleh menyediakan:

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

Senarai lengkap sifat aplikasi boleh didapati di Spring di sini.

6. Kesimpulannya

Ini menyimpulkan perjalanan pantas Spring Boot CLI kami! Untuk maklumat lebih lanjut, periksa dokumen rasmi.

Dan seperti biasa, kod sumber untuk artikel ini boleh didapati di GitHub.