-
(스프링 기본) 27 - 인터페이스 InitializingBean, DisposableBean개발/Spring 2024. 10. 29. 11:22
public class NetworkClient implements InitializingBean {
public interface InitializingBean { void afterPropertiesSet() throws Exception; }
다음과 같이 코드에서 InitializingBean 인터페이스를 구현하도록 만든다.
InitializingBean 에는 afterPropertiesSet 이 존재하는데 이는 의존 관계 주입이 끝나면 호출하겠다. 는 뜻이다.
@Override public void afterPropertiesSet() throws Exception { connect(); call("초기화 연결 메세지"); }
다음과 같이 오버라이딩을 통해 연결과 콜 처리를 진행한다.
public class NetworkClient implements InitializingBean, DisposableBean {
public interface DisposableBean { void destroy() throws Exception; }
@Override public void destroy() throws Exception { disconnect(); }
DisposableBean 인터페이스 구현하는데 여기에는 destroy() 메서드가 존재하며,
서비스 종료 시 호출하는 disconnenct 를 넣어준다.
이렇게 하면 의존관계 주입 시 콜백 호출하고, 종료 직전에 콜백 호출 받을 수 있다.
그러나 해당 인터페이스는 스프링 전용 인터페이스이다.
따라서 해당 코드가 스프링 전용 인터페이스에 의존하게 되는 것이다.
초기화, 소멸 메서드 이름 변경이 불가능하며,
내가 코드를 고칠 수 없는 외부 라이브러리에 적용할 수 없다.
※ 인터페이스를 사용해 초기화, 종료 방법은 스프링 초창기 방법으로 잘 사용하지 않는다.
'개발 > Spring' 카테고리의 다른 글
(스프링 기본) 29 - 어노테이션 @PostConstruct, @PreDestroy (0) 2024.10.29 (스프링 기본) 28 - 빈 등록 초기화, 소멸 메서드 (initMethod, destroyMethod) (0) 2024.10.29 (스프링 기본) 26 - 빈 생명주기 콜백 (0) 2024.10.29 (스프링 기본) 25 - 의존 관계 등록 올바른 실무 기준 (자동, 수동) (0) 2024.10.28 (스프링 기본) 24 - 조회된 빈이 모두 필요할 때 (List, Map) (0) 2024.10.28