Aplikasi Spring Boot Console

1. Gambaran keseluruhan

Dalam tutorial ringkas ini, kita akan meneroka cara membuat aplikasi berasaskan konsol sederhana menggunakan Spring Boot.

2. Pergantungan Maven

Projek kami bergantung pada ibu bapa spring-boot:

 org.springframework.boot spring-boot-starter-parent 2.2.2.RELEASE  

Pergantungan awal yang diperlukan adalah:

 org.springframework.boot spring-boot-starter  

3. Aplikasi Konsol

Aplikasi konsol kami terdiri daripada satu kelas: SpringBootConsoleApplication.java - ini adalah kelas utama untuk aplikasi Spring Boot konsol.

Kami menggunakan anotasi @SpringBootApplication Spring di kelas utama kami untuk mengaktifkan konfigurasi automatik.

Kelas ini juga mengimplementasikan antara muka CommandLineRunner Spring . CommandLineRunner adalah antara muka Spring Boot sederhana dengan kaedah run . Spring Boot secara automatik akan memanggil kaedah run semua kacang yang melaksanakan antara muka ini setelah konteks aplikasi dimuat.

Berikut adalah aplikasi konsol kami:

@SpringBootApplication public class SpringBootConsoleApplication implements CommandLineRunner { private static Logger LOG = LoggerFactory .getLogger(SpringBootConsoleApplication.class); public static void main(String[] args) { LOG.info("STARTING THE APPLICATION"); SpringApplication.run(SpringBootConsoleApplication.class, args); LOG.info("APPLICATION FINISHED"); } @Override public void run(String... args) { LOG.info("EXECUTING : command line runner"); for (int i = 0; i < args.length; ++i) { LOG.info("args[{}]: {}", i, args[i]); } } }

Kita juga harus menentukan spring.main.web-application-type = TIADA harta Spring. Harta ini secara terang-terangan akan memberitahu Spring bahawa ini bukan aplikasi web.

Semasa kita menjalankan SpringBootConsoleApplication , kita dapat melihat perkara berikut yang dicatat:

00:48:51.888 [main] INFO c.b.s.SpringBootConsoleApplication - STARTING THE APPLICATION 00:48:52.752 [main] INFO c.b.s.SpringBootConsoleApplication - No active profile set, falling back to default profiles: default 00:48:52.851 [main] INFO o.s.c.a.AnnotationConfigApplicationContext - Refreshing org.spring[email protected]6497b078: startup date [Sat Jun 16 00:48:52 IST 2018]; root of context hierarchy 00:48:53.832 [main] INFO o.s.j.e.a.AnnotationMBeanExporter - Registering beans for JMX exposure on startup 00:48:53.854 [main] INFO c.b.s.SpringBootConsoleApplication - EXECUTING : command line runner 00:48:53.854 [main] INFO c.b.s.SpringBootConsoleApplication - args[0]: Hello World! 00:48:53.860 [main] INFO c.b.s.SpringBootConsoleApplication - Started SpringBootConsoleApplication in 1.633 seconds (JVM running for 2.373) 00:48:53.860 [main] INFO c.b.s.SpringBootConsoleApplication - APPLICATION FINISHED 00:48:53.868 [Thread-2] INFO o.s.c.a.AnnotationConfigApplicationContext - Closing org.spring[email protected]6497b078: startup date [Sat Jun 16 00:48:52 IST 2018]; root of context hierarchy 00:48:53.870 [Thread-2] INFO o.s.j.e.a.AnnotationMBeanExporter - Unregistering JMX-exposed beans on shutdown

Perhatikan bahawa kaedah jalankan dipanggil setelah konteks aplikasi dimuat tetapi sebelum pelaksanaan kaedah utama selesai.

Sebilangan besar aplikasi konsol hanya akan mempunyai satu kelas yang menerapkan CommandLineRunner . Sekiranya aplikasi anda mempunyai beberapa kelas yang melaksanakan CommandLineRunner , urutan pelaksanaan dapat ditentukan menggunakan anotasi Spring @Order .

4. Kesimpulan

Dalam artikel ini, kami telah meringkaskan cara membuat aplikasi berasaskan konsol sederhana menggunakan Spring Boot.

Kod sumber lengkap contoh kami di sini, seperti biasa, ada di GitHub.