본문 바로가기

Spring

[Spring] 빈의 생명주기

728x90

스프링 관련 질문 중 "스프링 빈의 생명주기"에 관련된 내용을 공유하고자 합니다.

스프링 IoC 컨테이너 생성

스프링 IoC 컨테이너는 ApplicationContext 인터페이스를 구현한 객체로 빈(자바 객체)를 객체화, 구성, 초기화를 담당합니다.

스프링 빈 생성

정의된 빈을 객체화 하는 과정입니다.

자바 어노테이션 기반, XML, Grooby 등의 방법으로 정의가 가능합니다.

생성자, 정적 팩토리 함수, 인스턴스 팩토리 함수 등의 방법으로 객체화를 진행합니다.

빈의 의존성 주입

빈에서 필요로 하는 의존관계의 다른 빈을 주입하는 과정입니다.

Field, Setter, Constructor 방식으로 주입할 수 있습니다.

초기화 콜백 수행

초기화가 완료되면 3가지 방법의 콜백을 통하여 후처리를 진행합니다.

  • InitializingBean을 구현(afterPropertiesSet() 함수)
  • initMethod를 지정
  • @PostConstruct 어노테이션을 사용

3개가 혼재되어있으면 순서는 다음과 같습니다.

@PostConstruct > afterPropertiesSet > initMethod

빈의 동작 수행

초기화가 완료되면 필요로 하는 기능을 수행합니다.

소멸자 콜백 수행

프로그램에 대한 종료 또는 빈의 사용이 완료되어 소멸될 경우 소멸자 콜백을 수행합니다.

초기화 콜백과 유사하게 3가지 방법으로 소멸전 처리를 진행합니다.

  • DisposableBean을 구현 (destroy() 함수)
  • destroyMethod를 지정
  • @PreDestroy 어노테이션 사용

역시, 3개가 혼재되어있으면 순서는 다음과 같습니다.

@PreDestroy > destroy() > destroyMethod

프로그램 종료

모든 종료처리가 끝나면 프로그램도 종료가 됩니다.

반응형