1. 개요

이 빠른 사용방법(예제)에서는 Spring Boot를 사용하여 간단한 콘솔 기반 애플리케이션을 만드는 방법을 살펴 봅니다.

2. Maven 의존성

우리 프로젝트는 스프링 부트 부모에 의존합니다.

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.4.0</version>
</parent>

필요한 초기 의존성은 다음과 같습니다.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>

3. 콘솔 애플리케이션

우리의 콘솔 애플리케이션은 하나의 클래스로 구성됩니다 :  SpringBootConsoleApplication.java  – 이것은 Spring Boot 콘솔 애플리케이션을위한 메인 클래스입니다.

우리는  자동 구성을 활성화하기 위해 메인 클래스에서 Spring의  @SpringBootApplication 어노테이션 을 사용하고 있습니다.

이 클래스는 Spring의  CommandLineRunner 인터페이스 도 구현 합니다. CommandLineRunner실행 메소드 가있는 간단한 Spring Boot 인터페이스입니다 . Spring Boot는 애플리케이션 컨텍스트가로드 된 후이 인터페이스를 구현하는 모든 Bean run 메소드를 자동으로 호출합니다 .

다음은 콘솔 애플리케이션입니다.

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

spring.main.web-application-type = NONE Spring 속성 도 지정해야  합니다 . 이 속성은 Spring이 웹 애플리케이션이 아님을 명시 적으로 알려줍니다.

SpringBootConsoleApplication 을 실행 하면 다음과 같이 기록 된 것을 볼 수 있습니다.

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.springframework.context.annotation.AnnotationConfigApplicationContext@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.springframework.context.annotation.AnnotationConfigApplicationContext@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

통지 실행 방법은 애플리케이션 컨텍스트가로드 된 후에 만의 실행 전에 호출되는  주요 방법이 완료됩니다.

대부분의 콘솔 응용 프로그램에는 CommandLineRunner 를 구현하는 단일 클래스 만 있습니다  . 애플리케이션에 CommandLineRunner 를 구현하는 여러 클래스가  있는 경우 Spring의 @Order 어노테이션을 사용하여 실행 순서를 지정할 수 있습니다 .

4. 결론

이 기사에서는 Spring Boot를 사용하여 간단한 콘솔 기반 애플리케이션을 만드는 방법을 요약했습니다.

여기에있는 예제의 전체 소스 코드는 항상 GitHub에 있습니다 .