[Spring Boot] ApplicationRunner

조애옹·2025년 6월 16일

🔍 ApplicationRunner란?

  • 애플리케이션이 완전히 시작된 후 실행되는 로직을 작성할 수 있도록 제공하는 인터페이스
  • 서버가 다 켜진 뒤에 딱 한 번 실행할 로직을 작성할 때 사용

✅ 사용 방법

@Component
public class MyRunner implements ApplicationRunner {
    @Override
    public void run(ApplicationArguments args) throws Exception {
        System.out.println("애플리케이션 실행 완료 후 동작!");
    }
}
  • @Component로 빈으로 등록하면 스프링 부트가 자동으로 실행함
  • run() 메서드에 실행하고자 하는 로직을 작성하면 됨

✅ ApplicationArguments

  • run() 메서드는 ApplicationArguments를 인자로 받음
  • ApplicationArguments를 통해 더 다양한 형태의 커맨드 라인 인자를 처리할 수 있음
@Override
public void run(ApplicationArguments args) {
    List<String> nonOptionArgs = args.getNonOptionArgs(); // 일반 인자
    Set<String> optionNames = args.getOptionNames();      // --key=value 형태
}
java -jar myapp.jar --mode=test --debug
  • --mode=testargs.getOptionNames()에서 "mode"로 확인 가능
  • args.getOptionValues("mode")로 "test" 값을 얻을 수 있음

@Order

ApplicationRunner가 여러 개 있을 경우, 실행 순서를 지정

@Component
@Order(1)
public class InitStep1 implements ApplicationRunner { ... }

@Component
@Order(2)
public class InitStep2 implements ApplicationRunner { ... }
profile
아자잣

0개의 댓글