@PostConstruct? @PreDestroy?

·2023년 7월 21일
0

프로젝트 공부

목록 보기
19/33

@PostConstruct란?

@PostConstruct는 의존성 주입이 이루어진 후 초기화를 수행하는 메서드이다.

  • @PostConstruct가 붙은 메서드는 클래스가 service를 수행하기 전에 발생
  • 다른 리소스에서 호출되지 않아도 수행됨
  • 여러 초기화 코드를 넣는 방법중 하나이다.

초기화 코드

초기화 코드의 목적

  • 초기 세팅
  • 어떤 쓰레드를 실행하는 용도

초기화 코드를 넣는 방법의 종류

  • CommandLineRunner
  • ApplicationRunner
  • @EventListner(ApplicationReadyEvent.class)
  • @PostConstruct

@PostConstruct와 @PreDestroy

//예시
@PostConstruct
public void init(){
    System.out.println("NetworkClient.init");
    connect();
    call("초기화 연결 메세지");
}

@PreDestroy
public void close() {
    System.out.println("NetworkClient.close");
    disconnect();
}
  • 최신 스프링에서 가장 권장하는 방법이다.
  • java 진영에서 공식적으로 지원, spring이 아니라 다른 컨테이너를 쓰더라도 적용된다
  • 컴포넌트 스캔과 잘 어울린다
  • 단점 - 외부 라이브러리에 적용할 수없다 → 외부 라이브러리를 초기화, 종료 해야하면 @Bean의 기능(initMethod, destroyMethod)을 사용하자
profile
개발자가 되고싶은 낭랑 24세

1개의 댓글

comment-user-thumbnail
2023년 7월 21일

@PostConstruct에 대한 설명이 굉장히 명확하네요. 초기화 코드와의 관계, 그리고 사용 방법을 잘 이해할 수 있었습니다. 특히 외부 라이브러리에는 적용할 수 없다는 단점에 대한 언급은 독자들에게 많이 도움이 될 것 같아요. 잘 읽었습니다!

답글 달기

관련 채용 정보