Spring Boot Console-applicatie

1. Overzicht

In deze korte tutorial onderzoeken we hoe je een eenvoudige console-gebaseerde applicatie kunt maken met Spring Boot.

2. Maven afhankelijkheden

Ons project is gebaseerd op de springlaars-ouder:

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

De aanvankelijke vereiste afhankelijkheid is:

 org.springframework.boot spring-boot-starter 

3. Consoletoepassing

Onze consoletoepassing bestaat uit één klasse: SpringBootConsoleApplication.java - dit is de hoofdklasse voor onze Spring Boot-consoletoepassing.

We gebruiken Lente @SpringBootApplication annotatie op onze hoofdklasse om automatische configuratie in te schakelen.

Deze klasse implementeert ook Lente CommandLineRunner koppel. CommandLineRunner is een eenvoudige Spring Boot-interface met een rennen methode. Spring Boot zal automatisch het rennen methode van alle bonen die deze interface implementeren nadat de toepassingscontext is geladen.

Hier is onze consoletoepassing:

@SpringBootApplication openbare klasse SpringBootConsoleApplication implementeert CommandLineRunner {privé statische Logger LOG = LoggerFactory .getLogger (SpringBootConsoleApplication.class); public static void main (String [] args) {LOG.info ("DE TOEPASSING STARTEN"); SpringApplication.run (SpringBootConsoleApplication.class, args); LOG.info ("APPLICATIE KLAAR"); } @Override public void run (String ... args) {LOG.info ("EXECUTING: command line runner"); voor (int i = 0; i <args.length; ++ i) {LOG.info ("args [{}]: {}", i, args [i]); }}}

We moeten ook de spring.main.web-application-type = GEEN Lente eigenschap. Deze eigenschap zal Spring expliciet laten weten dat dit geen webapplicatie is.

Wanneer we executeren SpringBootConsoleApplicationzien we het volgende gelogd:

00: 48: 51.888 [main] INFO cbsSpringBootConsoleApplication - DE APPLICATIE STARTEN 00: 48: 52.752 [main] INFO cbsSpringBootConsoleApplication - Geen actief profiel ingesteld, terugvallend naar standaardprofielen: default 00: 48: 52.851 [main] INFO oscaAnnotationConfigApplication - Verfrissende org.spring [e-mail beveiligd] 6497b078: opstartdatum [za 16 juni 00:48:52 IST 2018]; root van contexthiërarchie 00: 48: 53.832 [main] INFO osjeaAnnotationMBeanExporter - Beans registreren voor JMX-blootstelling bij opstarten 00: 48: 53.854 [main] INFO cbsSpringBootConsoleApplication - UITVOEREN: command line runner 00: 48: 53.854 [main] INFO cbs SpringBootConsoleApplication - args [0]: Hallo wereld! 00: 48: 53.860 [main] INFO cbsSpringBootConsoleApplication - Start SpringBootConsoleApplication in 1.633 seconden (JVM draait voor 2.373) 00: 48: 53.860 [main] INFO cbsSpringBootConsoleApplication - APPLICATION FINISHED 00: 48: 53.868 [main] INFO - Afsluiting org.spring [e-mail beschermd] 6497b078: opstartdatum [za 16 juni 00:48:52 IST 2018]; root van contexthiërarchie 00: 48: 53.870 [Thread-2] INFO o.s.j.e.a.Annotation MBeanExporter - Registratie van aan JMX blootgestelde bonen bij afsluiten ongedaan maken

Merk op dat de rennen methode wordt aangeroepen nadat de toepassingscontext is geladen, maar voordat de hoofd methode is voltooid.

De meeste consoletoepassingen hebben slechts één klasse die wordt geïmplementeerd CommandLineRunner. Als uw toepassing meerdere klassen heeft die implementeren CommandLineRunner, kan de volgorde van uitvoering worden gespecificeerd met behulp van Spring's @Bestellen annotatie.

4. Conclusie

In dit artikel hebben we samengevat hoe u met Spring Boot een eenvoudige consoletoepassing kunt maken.

De volledige broncode van onze voorbeelden hier is, zoals altijd, op GitHub.