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

코코·2023년 10월 18일
0

기술면접 준비

목록 보기
18/42

Spring의 빈(Bean) 라이프사이클

Spring의 빈(Bean) 라이프사이클은 빈의 생성부터 소멸까지의 모든 단계를 포함합니다. Spring은 이러한 라이프사이클을 관리하며, 빈이 생성될 때 필요한 작업을 수행하고, 소멸될 때 자원을 정리합니다.

빈의 라이프사이클은 다음과 같은 단계로 이루어집니다.

  • Bean Definition의 로딩: Spring은 XML 또는 JavaConfig와 같은 설정 메타데이터에서 빈 정의를 로드합니다.

  • 빈 인스턴스화: Bean Definition을 기반으로 Spring은 빈을 실제로 인스턴스화합니다.

  • 의존성 주입(Dependency Injection): 빈의 의존성이 주입되고, 초기화가 수행됩니다.

  • 빈 초기화(Initialization): 빈 초기화 메서드가 호출됩니다. 이 단계에서 @PostConstruct 어노테이션이 달린 메서드가 호출됩니다. 이 메서드는 빈이 완전히 초기화된 후에 실행됩니다.

  • 빈 사용: 애플리케이션에서 빈이 사용됩니다.

  • 빈 소멸(Destruction): 애플리케이션이 종료되거나 해당 빈이 더 이상 필요하지 않을 때, 빈의 소멸 메서드가 호출됩니다. 이 단계에서 @PreDestroy 어노테이션이 달린 메서드가 호출됩니다.

  • 컨테이너 종료: 애플리케이션 컨텍스트가 종료될 때, 모든 빈이 소멸됩니다.

@PostConstruct와 @PreDestroy 어노테이션의 역할

  • @PostConstruct: 이 어노테이션은 초기화 작업을 수행하는 메서드에 사용됩니다. 이 메서드는 해당 빈이 모든 의존성 주입이 완료된 후 호출됩니다. 주로 빈이 초기화된 후 추가적인 설정이나 초기화 작업을 수행하기 위해 사용됩니다.

  • @PreDestroy: 이 어노테이션은 빈이 소멸되기 전에 호출되어 정리 작업을 수행하는 메서드에 사용됩니다. 이 메서드는 해당 빈이 더 이상 필요하지 않을 때 호출되며, 주로 빈이 사용한 리소스를 정리하거나 해제하는 데 사용됩니다.

profile
Just Do It

0개의 댓글