Spring Boot Console-Anwendung

Spring Boot Console-Anwendung

1. Überblick

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.0.3.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 die Spring Boot-Konsolenanwendung.

Wir verwendenSpring’s @SpringBootApplication annotation in unserer Hauptklasse, um die automatische Konfiguration zu aktivieren.

Diese Klasse implementiert auchSpring’s CommandLineRunner interface. CommandLineRunner ist eine einfache Spring Boot-Schnittstelle mit einerrun-Methode. Spring Boot ruft automatisch dierun-Methode 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 auchspring.main.web-application-type=NONESpring property angeben. Diese Eigenschaft informiert Spring ausdrücklich darüber, dass dies keine Webanwendung ist.

Wenn wirSpringBootConsoleApplication ausführen, sehen wir Folgendes protokolliert:

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 Methoderun aufgerufen wird, nachdem der Anwendungskontext geladen wurde, aber bevor die Ausführung der Methodemainabgeschlossen ist.

Die meisten Konsolenanwendungen haben nur eine einzige Klasse, dieCommandLineRunner implementiert. Wenn Ihre Anwendung mehrere Klassen hat, dieCommandLineRunner implementieren, kann die Ausführungsreihenfolge mitSpring’s @Order annotation 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 immerover on GitHub.