빈 생명주기 콜백이란?#
db커넥션 풀이나, 네트워크 소캣처럼 연결을 미리 해두고, 어플리케이션 종료 시점에 연결을 모두 종료하라면 객체의 초기화와 종료 작업이 필요
- 스프링은 의존관계 주입이 완료되면, 스프링 빈에게 콜백 메서드를 통해서 초기화 시점을 알려줌
- 또한, 스프링 컨테이너가 종료되기 직전에 소멸 콜백을 줌
빈 생명주기 콜백 지원 3가지 방법
- 인터페이스(InitializingBean, DisposableBean)
- 설정 정보에 초기화 메서드, 종료 메서드 지정
- @PostConstruct, @PreDestroy
인터페이스#
초창기에 나온 방법으로, 거의 사용안함
InitializingBean, DisposableBean 상속받아서 진행
InitializingBean은afterPropertiesSet()으로 초기화 지원DisposableBean은destroy()로 소멸 지원
빈 등록 초기화, 소멸 메서드#
얘도 잘 안씀 => 코드를 고칠 수 없는 경우에만 씀
설정 정보에 @Bean(initMethod = "init", destroyMethod = "close") 처럼 초기화, 소멸 메서드 지정할 수 있다.
특징
- 메서드 이름 자유로움, 고칠수 없는 라이브러리에도 적용가능
- 스프링 코드에 의존 X
어노테이션 👍👍#
거의 얘만씀
시작, 종료시 호출할 메소드에
@PostConstruct,PreDestory적어놓으면 끝남
- 가장 권장함
- 유일한 단점은 외부 라이브러리에 적용하지 못한다는 것임 이때는 위의 방법을 사용하자