본문 바로가기

백엔드 잡학사전

[스프링 핵심] 빈 생명주기 콜백

스프링은 빈을 언제 초기화하고, 종료할까?

 

 

생성자를 만들 때는 정말 필수적인 정보만 받게 해야 한다. 반면 초기화는 본격적인 무거운 작업들을 진행하면 된다.

그 둘을 잘 분리하는 것이 중요하다. 생성자를 만들 때는 무거운 작업을 하라고 만든 것이 아니기 때문이다.

 

 

스프링이 처음 만들어지거나, 없어지기 직전에 자기한테 의존하는 애들한테 알려주는 것을 위와 같이 세 경우에 진행한다.

 

InitializingBean, DisposableBean

 

InitilizingBean은 afterPropertiesSet을, DisposableBean은 destroy 메서드를 지원함.

 

=> 코드레벨까지 너무 의존적이라 거의 안 씀.

 

빈 등록 초기화, 소멸 메서드 지정

 

애노테이션 @PostConstruct, @PreDestroy

결론부터 말하면 그냥 세개중에 이거 쓰면 된다. 킹-노테이션.

 

근데 웃긴 게, 스프링 종속 기술이 아니라 javax.annotation...이다. 자바 표준이기 때문에 스프링이 아닌 다른 컨테이너에서도 동작한다. 그래서 더욱 좋은 것.

 

결론