초웹개_스프링5_빈사이클

네코·2022년 5월 4일
0

초웹개

목록 보기
5/10
post-thumbnail

빈 라이프사이클 & 범위

스프링 컨테이너는 빈 객체의 라이프 사이클을 관리함.

new AnnotationConfigApplicationContext(Appctx.class)와 같이 스프링 컨테이너를 초기화하면 인자로 전달된 설정 클래스 파일을 읽고 빈객체를 생성,의존 주입,초기화의 과정을 완료한다.

빈_라이프사이클

객체 생성 -> 의존 설정 -> 초기화 -> 소멸

빈 객체 초기화,소멸 담당 스프링 인터페이스

  • org.springframework.beans.factory.InitializingBean의 afterProperties()
    빈 객체 생성 후 초기화 과정 필요하면 InitializingBean 상속해서 해당 메서드 구현하면 됨

  • org.springframework.beans.factory.DisposableBean의 destroy()
    소멸 과정 필요하면 위의 메소드 구현하면 됨.
    이런 초기화, 소멸 필요한 경우 DB connection, 채팅 등등

  • 제공받은 외부 클래스를 빈객체로 설정할 경우 소스코드 없으면 초기화 or 소멸 구현 못함.
    이 때는 클래스 내부에 제공한 메서드를 @Bean의 initMethod,destryMethod 속성에 지정하면 됨

빈 객체의 생성과 관리 범위

별도 설정 하지 않으면 빈은 싱글톤 범위를 갖음.
설정을 통해 프로토타입 범위의 빈을 설정 할 수 있음. @Scope("prototype")
프로토타입 범위의 빈은 완전한 라이프사이클을 따르지 않음
빈 객체의 소멸 처리를 코드에서 직접 해야함.

0개의 댓글