스프링 부트 애플리케이션 구동 시점에 특정 코드 실행 시키기기 위해서 2가지 인터페이스를 제공하고 있습니다.
CommandLineRunner
CommandLineRunner 인터페이스는
구동 시점에 실행되는 코드가 자바 문자열 아규먼트 배열에 접근해야할 필요가 있는 경우에 사용합니다.
다음과 같이 CommandLineRunner 인터페이스를 구현한 클래스에 @Component 어노테이션을 선언해두면 컴포넌트 스캔이되고 구동 시점에 run 메소드의 코드가 실행됩니다.
-실행-
jar 파일로 패키징된 애플리케이션을 실행시킬 때 abc와 123을 인자로 넘깁니다.
DemoCommandLineRunner 클래스의 run() 메소드의 인자로 넘어와서 출력됩니다.
ApplicationRunner
ApplicationRunner 인터페이스도 CommandLineRunner 인터페이스와 마찬가지로 구동 시점에 run() 메소드를 실행시키지만 다른 타입의 인자를 받습니다. 단순 인자의 스트링 배열을 포함한 추상화한 ApplicationArguments 타입의 객체가 대신 run() 메소드의 인자로 넘어옵니다.
-실행-
jar 파일로 패키징된 애플리케이션을 실행시킬 때 abc와 123을 인자로 넘깁니다.
ApplicationRunner 클래스의 run() 메소드의 인자로 넘어와서 출력됩니다.
'■ Spring + Boot' 카테고리의 다른 글
[Spring] CSRF 란 ? (0) | 2020.11.23 |
---|---|
[Spring] @ControllerAdvice, @ExceptionHandler를 이용한 예외처리 분리, 통합하기(Spring에서 예외 관리하는 방법, 실무에서는 어떻게?) (0) | 2020.11.22 |
[Spring] JPA - @JoinTable (조인할려면) (0) | 2020.11.07 |
[Spring] JPA - @Query (0) | 2020.11.03 |
[Spring] JPA - @NamedQuery(정적 쿼리) (0) | 2020.11.03 |