스프링 부트 애플리케이션 구동 시점에 특정 코드 실행 시키기기 위해서 2가지 인터페이스를 제공하고 있습니다.

 

 

 

 

 

 

CommandLineRunner

CommandLineRunner 인터페이스는

구동 시점에 실행되는 코드가 자바 문자열 아규먼트 배열에 접근해야할 필요가 있는 경우에 사용합니다.

 

다음과 같이 CommandLineRunner 인터페이스를 구현한 클래스에 @Component 어노테이션을 선언해두면 컴포넌트 스캔이되고 구동 시점에 run 메소드의 코드가 실행됩니다.

 

-실행-

jar 파일로 패키징된 애플리케이션을 실행시킬 때 abc 123을 인자로 넘깁니다.

 

DemoCommandLineRunner 클래스의 run() 메소드의 인자로 넘어와서 출력됩니다.

 

 

 

 

 

 

ApplicationRunner

ApplicationRunner 인터페이스도 CommandLineRunner 인터페이스와 마찬가지로 구동 시점에 run() 메소드를 실행시키지만 다른 타입의 인자를 받습니다. 단순 인자의 스트링 배열을 포함한 추상화한 ApplicationArguments 타입의 객체가 대신 run() 메소드의 인자로 넘어옵니다.

 

-실행-

jar 파일로 패키징된 애플리케이션을 실행시킬 때 abc 123을 인자로 넘깁니다.

 

ApplicationRunner 클래스의 run() 메소드의 인자로 넘어와서 출력됩니다.