[spring] @PostConstruct 와 @PreDestroy 어노테이션

2023. 1. 5. 14:45·Spring

스프링빈의 생명주기

데이터베이스 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작시점에 연결을 하고, 종료시점에 연결을 끊는 작업을 진행하기위해서는 객체의 초기화와 종료작업이 필요하다.

빈 생명주기 콜백은 의존관계주입이 완료되거나 종료되는 시점에 스프링빈안의 메서드를 호출해주는 기능이다.

스프링 빈의 이벤트 라이프사이클

스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백 사용 -> 사용 -> 소멸전 콜백 -> 스프링 종료

  • 초기화 콜백: 빈이 생성되고, 빈의 의존관계 주입이 완료된 후 바로 호출
  • 소멸전 콜백: 빈이 소멸되기 직전에 호출

@PostConstruct

  • @PostConstruct 는 WAS 가 뜰 때 bean이 생성된 다음 딱 한번만 실행됨이 보장되기에 어떠한 이유로 여러번 호출되는 상황을 방지
  • 애플리케이션 실행시점에 의존관계주입 후 메서드 실행
@PostConstruct
public void init() {
    System.out.println("NetworkClient.init");
    connect();
    call("초기화 연결 메시지");
}

@PreDestroy

  • 스프링 컨테이너에서 빈을 소멸시키기 직전에 메서드 실행
  • @PostConstruc와 마찬가지로 여러번 호출되는 상황 방지
@PreDestroy
public void close() {
    System.out.println("NetworkClient.close");
    disConnect();
}
728x90
저작자표시 (새창열림)

'Spring' 카테고리의 다른 글

[스프링 MVC 1편] - HttpServletResponse  (0) 2023.01.03
[스프링 MVC 1편] - 서블릿 HttpServletRequest(http요청데이터)  (0) 2023.01.02
[스프링 MVC 1편] - 서블릿 HttpServletRequest(startLine, header)  (0) 2023.01.02
[스프링 MVC 1편] - 서블릿  (0) 2023.01.02
[스프링 MVC 1편] - 웹 애플리케이션 이해  (1) 2022.12.31
'Spring' 카테고리의 다른 글
  • [스프링 MVC 1편] - HttpServletResponse
  • [스프링 MVC 1편] - 서블릿 HttpServletRequest(http요청데이터)
  • [스프링 MVC 1편] - 서블릿 HttpServletRequest(startLine, header)
  • [스프링 MVC 1편] - 서블릿
study ticket
study ticket
  • study ticket
    혼자하는 공부
    study ticket
  • 전체
    오늘
    어제
    • 개발 (77)
      • 오류 (1)
      • Spring (13)
      • Java (0)
      • Data structure (6)
      • Algorithm (49)
        • 백준 (17)
        • 프로그래머스 (2)
      • 문제풀면서 알게되는것들 끄적 (2)
      • 머신러닝 (4)
        • sklearn (3)
        • pandas (1)
      • 프로젝트 (0)
        • 핏두 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백준1157
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
study ticket
[spring] @PostConstruct 와 @PreDestroy 어노테이션
상단으로

티스토리툴바