Console Application with Spring Boot

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

External

Internal

Overview

Starter Dependencies

dependencies {
    implementation('org.springframework.boot:spring-boot-starter')
}

Spring Boot Application Class

import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MyCommandLineApplication implements CommandLineRunner {

    public static void main(String[] args) {
        SpringApplication.run(MyCommandLineApplication.class, args);
    }

    @Override
    public void run(String... args) throws Exception {

        System.out.println("running with " + Arrays.asList(args) + " ...");

        new CommandLineLoop().run();
    }
}

Simplest Command Line Loop Implementation

package ...;

import java.io.BufferedReader;
import java.io.InputStreamReader;

@SuppressWarnings("WeakerAccess")
public class CommandLineLoop {

    private BufferedReader br;

    public CommandLineLoop() {

        this.br = new BufferedReader(new InputStreamReader(System.in));
    }

    public void run() throws Exception {

        while(true) {

            System.out.print("> ");

            String line = br.readLine().trim();

            if (line.isEmpty()) {

                continue;
            }

            if (line.toLowerCase().startsWith("exit")) {

                break;
            }
        }
    }
}