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에 있습니다 .