Spring Boot Console-Anwendung

1. Übersicht

In diesem kurzen Tutorial erfahren Sie, wie Sie mit Spring Boot eine einfache konsolenbasierte Anwendung erstellen.

2. Maven-Abhängigkeiten

Unser Projekt basiert auf dem Spring-Boot-Elternteil:

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

Die anfängliche erforderliche Abhängigkeit ist:

 org.springframework.boot spring-boot-starter  

3. Konsolenanwendung

Unsere Konsolenanwendung besteht aus einer einzelnen Klasse: SpringBootConsoleApplication.java - Dies ist die Hauptklasse für unsere Spring Boot-Konsolenanwendung.

Wir verwenden die @ SpringBootApplication- Annotation von Spring für unsere Hauptklasse, um die automatische Konfiguration zu aktivieren.

Diese Klasse implementiert auch die CommandLineRunner- Schnittstelle von Spring . CommandLineRunner ist eine einfache Spring Boot-Schnittstelle mit einer Ausführungsmethode . Spring Boot ruft automatisch die Ausführungsmethode aller Beans auf, die diese Schnittstelle implementieren, nachdem der Anwendungskontext geladen wurde.

Hier ist unsere Konsolenanwendung:

@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]); } } }

Wir sollten auch die Eigenschaft spring.main.web-application-type = NONE Spring angeben . Diese Eigenschaft informiert Spring ausdrücklich darüber, dass dies keine Webanwendung ist.

Wenn wir SpringBootConsoleApplication ausführen , wird Folgendes protokolliert angezeigt :

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

Beachten Sie, dass die Ausführungsmethode aufgerufen wird, nachdem der Anwendungskontext geladen wurde, aber bevor die Ausführung der Hauptmethode abgeschlossen ist.

Die meisten Konsolenanwendungen haben nur eine einzige Klasse, die CommandLineRunner implementiert . Wenn Ihre Anwendung über mehrere Klassen verfügt, die CommandLineRunner implementieren , kann die Ausführungsreihenfolge mithilfe der @ Order- Annotation von Spring angegeben werden .

4. Fazit

In diesem Artikel haben wir zusammengefasst, wie Sie mit Spring Boot eine einfache konsolenbasierte Anwendung erstellen.

Der vollständige Quellcode unserer Beispiele hier ist wie immer auf GitHub verfügbar.