[Spring Boot] 스프링 구동 시에 특정 코드 자동 실행시키기 (Command Line Runner, Application Runner)

2023. 11. 22. 21:52· Spring Boot
목차
  1. 1. Command Line Runner
  2. 1-1. Command Line Runner 란
  3. 1-2. Command Line Runner 사용 방법
  4. 1-3. 실행 결과
  5. 2. Application Runner
  6. 2-1. Application Runner 란
  7. 2-2. Application Runner 사용 방법
  8. 2-3. 실행 결과

스프링 구동 시점에 특정 코드를 자동으로 실행시키는 방법은 2가지가 있음

  1. Command Line Runner
  2. Application Runner

 

1. Command Line Runner

 

1-1. Command Line Runner 란

  • Spring Application 내에 Bean이 포함될 때 Bean이 실행되어야 함을 나타내는데 사용되는 인터페이스

 

1-2. Command Line Runner 사용 방법

import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;

import java.util.Arrays;

@Component
public class CommandLineRunnerExample implements CommandLineRunner {

	@Override
    public void run(String... args) throws Exception{
    
    	System.out.println("Arrays.toString(args) = " + Arrays.toString(args));
        System.out.println("테스트!");
    }
}
  • 스프링 구동 시점에 실행시키고 싶은 코드를 작성한 클래스에 @Component 어노테이션 선언
  • public void run (String... args) 를 오버라이딩 해서 사용 (@Override)

 

1-3. 실행 결과

  • 넘겨준 문자열이 없기 때문에 []로만 출력됨
  • 문자열이 넘어가는 지 검증하기 위해 터미널로 실행

 

  • 터미널에서 Jar 파일 실행 (문자열 포함)
java -jar demo-0.0.1-SNAPSHOT.jar "테스트1" abc test 123

 

  • 터미널에서 실행 결과 => 넘겨준 문자열들을 포함하여 출력함을 확인

 

 

2. Application Runner

 

2-1. Application Runner 란

  • Command Line Runner와 동일하게 스프링 구동시점에 run 메서드를 실행하는 인터페이스
  • 파라미터로 단순 String 배열 대신 Application Arguments에 접근해야 하는 경우 사용

 

2-2. Application Runner 사용 방법

import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;

import java.util.Arrays;

@Component
public class ApplicationRunnerExample implements ApplicationRunner {

	@Override
    public void run(ApplicationArguments args) throws Exception{
    
    	System.out.println("Arrays.toString(args) = " + Arrays.toString(args.getSourceArgs()));
        System.out.println("테스트!");
    }
}
  • 스프링 구동 시점에 실행시키고 싶은 코드를 작성한 클래스에 @Component 어노테이션 선언
  • public void run (ApplicationArguments args)를 오버라이딩해서 사용 (@Override)

 

2-3. 실행 결과

  • 위에서와 마찬가지로 넘겨지는 ApplicationArguments 를 확인해보기 위해 터미널에서 실행

 

  • 터미널에서 Jar 파일 실행 (문자열 포함)
java -jar demo-0.0.1-SNAPSHOT.jar ApplicationRunnerTest 테스트2 456

 

  • 터미널에서 실행 결과 => 넘겨준 문자열들을 포함하여 출력함을 확인

 

https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/CommandLineRunner.html

 

CommandLineRunner (Spring Boot 3.2.4 API)

Callback used to run the bean.

docs.spring.io

 

https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/ApplicationRunner.html

 

ApplicationRunner (Spring Boot 3.2.4 API)

Callback used to run the bean.

docs.spring.io

저작자표시 변경금지 (새창열림)

'Spring Boot' 카테고리의 다른 글

[Spring Boot] 페이징 기능 구현 ( + 페이징, 정렬, 검색, 에러 메시지 포함 예제)  (1) 2024.01.03
[SpringBoot] MySQL 연동 (maven, gradle)  (0) 2023.12.12
[Spring Boot] Gradle 빌드해서 Jar 파일 생성, 실행  (0) 2023.11.22
[Spring Boot] Port 8080 was already in use. 에러 해결  (2) 2023.11.22
[Spring Boot] error: invalid source release: 21 에러 해결  (1) 2023.11.22
  1. 1. Command Line Runner
  2. 1-1. Command Line Runner 란
  3. 1-2. Command Line Runner 사용 방법
  4. 1-3. 실행 결과
  5. 2. Application Runner
  6. 2-1. Application Runner 란
  7. 2-2. Application Runner 사용 방법
  8. 2-3. 실행 결과
'Spring Boot' 카테고리의 다른 글
  • [Spring Boot] 페이징 기능 구현 ( + 페이징, 정렬, 검색, 에러 메시지 포함 예제)
  • [SpringBoot] MySQL 연동 (maven, gradle)
  • [Spring Boot] Gradle 빌드해서 Jar 파일 생성, 실행
  • [Spring Boot] Port 8080 was already in use. 에러 해결
공대생안씨
공대생안씨
전자공학과 학부생의 코딩 일기
티스토리
|
공대생안씨
공대생의 코딩 일기
공대생안씨
글쓰기
|
관리
전체
오늘
어제
  • All Categories (151)
    • Spring Boot (46)
      • JPA (7)
      • Lombok (2)
    • Java (21)
    • DevOps (3)
      • CI,CD (8)
    • Database (7)
      • MySQL (5)
      • MongoDB (1)
      • H2 (1)
    • Trouble Shooting (5)
    • FE (4)
    • IntelliJ (3)
    • Git (3)
    • Algorithm (41)

블로그 메뉴

  • 홈
  • 태그
  • Github

공지사항

인기 글

hELLO · Designed By 정상우.v4.2.2
공대생안씨
[Spring Boot] 스프링 구동 시에 특정 코드 자동 실행시키기 (Command Line Runner, Application Runner)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.