오늘의하루

Spring Bean 생명 주기 콜백 본문

Spring

Spring Bean 생명 주기 콜백

오늘의하루_master 2023. 8. 21. 03:38

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

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

참고 사항

  1. 생성자 주입의 경우 빈 생성 단계에서 주입되고 setter와 필드 주입은 의존 관계 주입 단계에서 주입된다.
  2. 객체의 생성과 객체의 초기화는 분리하여 설계하는 것이 좋다.

 

콜백하는 방법

인터페이스

  • InitializingBean, DisposableBean을 구현하면 된다.
  • 현재는 잘 사용되지 않는다.
  • 스프링에 의존적이며 메서드명을 지정할 수 없는 단점이 있다.

설정 정보에서 초기화, 종료 메서드 지정

  • 빈을 수동으로 등록할 때 사용된다.
  • @Bean(InitMethod = "초기화메서드명", destoryMethod = "종료메서드명")
  • destoryMethod에는 메서드 추론이라는 기능이 있다.
  • 라이브러리의 대부분의 종료 메서드는 "close", "shutdown"이라는 이름을 사용한다.
  • 이 메소드 추론 기능은 위 두가지 이름의 메서드를 자동으로 호출해주는 것이다.
  • 따라서 만약 두가지 중 하나를 가졌다면 별도로 작성하지 않아도 된다.

어노테이션 지원(@PostConstruct, @PreDestory)

  • javax.annotation.~~~이므로 스프링에 종속적인 기술이 아닌 자바 표준기술이다.
  • 다른 컨테이너에서도 사용할 수 있다.
  • 컴포넌트 스캔과 잘 어울린다.
  • 유일한 단점은 외부 라이브러리에는 적용하지 못하는 것이다.
    • 외부 라이브러리 사용시에는 설정 정보에서 초기화, 종료 메서드를 지정해주면 된다.

 

'Spring' 카테고리의 다른 글

Spring Web관련 Scope  (0) 2023.08.22
Spring Bean Scope  (0) 2023.08.21
Spring 의존 관계 주입 정리  (0) 2023.08.21
Spring ComponentScan 관련 정리  (0) 2023.08.20
[Spring] 싱글 톤 관련 정리 및 주의사항  (0) 2023.08.20
Comments