CS Study : Spring bean container 생성부터 스프링 종료까지의 사이클에 대해 알려주실 수 있을까요? @PostConstruct, @PreDestroy 어노테이션의 역할도 함께 알려주시면 좋습니다.

song yuheon·2023년 10월 20일
0

CS Study

목록 보기
23/50
post-custom-banner

스프링 프레임워크의 핵심은 Bean Container이다.
여기에는 애플리케이션 객체가 생성되어 관리된다.
스프링 빈의 생명주기는 다음 과정을 거친다.


  1. 빈 정의
    빈의 설정 정보를 XML, 자바 어노테이션, 자바 코드 ...으로 정의한다.

  2. 빈 초기화
    스프링 컨테이너는 빈 정의에 따라 객체를 생성한다.
    이때 @PostConstruct 어노테이션이 붙은 메소드가 있다면 객체 생성 후 바로 호출된다.
    이 어노테이션은 초기화 작업에 적합하다.
    객체를 생성하자 마자 호출되므로
    예를 들면 리소스를 로드하거나 초기 데이터 설정 등의 작업을 수행할 때 사용된다.

  3. 빈 사용
    애플리케이션의 실행 중에는 스프링 컨테이너에서 빈을 검색하여 사용한다.

  4. 빈 소멸
    스프링 컨테이너 종료 시에 싱글톤 스코프에 있는 빈들은 소멸된다.
    이때 @PreDestroy 어노테이션이 붙은 메소드가 있다면 빈이 소멸되기 전에 호출된다.
    이는 리소스 해제나 기타 정리 작업에 적합하다고 볼 수 있다.

  5. 스프링 종료
    마지막으로 스프링 컨테이너 자체가 종료된다.


정리하자면


@PostConstruct@PreDestroy는 스프링 빈의 생명주기 중 특정 시점에 실행되는 로직을 정의하는 데 사용되는 어노테이션이다.
@PostConstruct는 빈이 초기화될 때 실행되며 @PreDestroy는 빈이 소멸될 때 실행된다


profile
backend_Devloper
post-custom-banner

0개의 댓글