@Component
public class MyRunner implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println("애플리케이션 실행 완료 후 동작!");
}
}
@Component로 빈으로 등록하면 스프링 부트가 자동으로 실행함run() 메서드에 실행하고자 하는 로직을 작성하면 됨run() 메서드는 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=test는 args.getOptionNames()에서 "mode"로 확인 가능args.getOptionValues("mode")로 "test" 값을 얻을 수 있음@OrderApplicationRunner가 여러 개 있을 경우, 실행 순서를 지정
@Component
@Order(1)
public class InitStep1 implements ApplicationRunner { ... }
@Component
@Order(2)
public class InitStep2 implements ApplicationRunner { ... }