본문 바로가기
Web/Spring Boot

@EventListener & @PostConstruct

by foreverever 2022. 6. 9.
반응형

애플리케이션을 실행할 때, 다른 리소스에서 호출하지 않고도 특정 메서드를 수행시키고 싶을 때

(예로, 초기 데이터를 저장하는 경우 등 초기화 작업 시)

 

다음 어노테이션 중 하나를 수행 시킬 메서드에 적용한다.

 

1) @EventListener(ApplicationReadyEvent.class)

2) @PostConstruct

 

1)의 경우 스프링 컨테이너가 완전히 초기화를 다 끝내고, 실행 준비가 되었을 때 발생하는 이벤트이다.

2)의 경우는  AOP같은 부분이 아직 처리되지 않은 시점에 호출 될 수 있어, 간혹 문제가 발생할 수 있음

 

가급적 1)를 쓰는게 좋을듯 싶다.

@EventListener(ApplicationReadyEvent.class)
public void initData() {
    log.info("데이터 초기화 시작");
    //초기화 작업
}

 

애플리케이션이 구동되고 자동으로 수행됨을 확인 할 수 있다

반응형

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

[Mockito] spyBean vs mockBean  (0) 2022.07.10
[DI] 생성자 주입을 사용하자  (0) 2022.06.21
[Spring] @RestControllerAdvice  (0) 2019.07.16
[Spring] AOP  (0) 2019.06.26
[Spring] DI (Dependency Injection)  (0) 2019.06.24