- src/test/java/hello/core/lifecycle/NetworkClient.java
public class NetworkClient implements InitializingBean, DisposableBean {
...
public NetworkClient() {
System.out.println("생성자 호출, url = " + url);
// connect();
// call("초기화 연결 메시지");
}
...
// 서비스 종료시 호출
public void disConnect() {
System.out.println("close: " + url);
}
@Override
public void afterPropertiesSet() throws Exception {
System.out.println("NetworkClient.afterPropertiesSet");
connect();
call("초기화 연결 메시지");
}
@Override
public void destroy() throws Exception {
System.out.println("NetworkClient.destroy");
disConnect();
}
}
· InitializingBean : afterPropertiesSet() 메서드로 초기화를 지원
· DisposableBea : destroy() 메서드로 소멸을 지원
- 콘솔
생성자 호출, url = null
NetworkClient.afterPropertiesSet
connect: http://hello-spring.dev
call: http://hello-spring.dev, message = 초기화 연결 메시지
14:03:49.936 [Test worker] DEBUG o.s.c.a.AnnotationConfigApplicationContext --Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@3241713e, started on Sun May 03 14:03:49 KST 2026
NetworkClient.destroy
close: http://hello-spring.dev
초기화 메서드가 의존관계 주입 완료 후 적절하게 호출됨
스프링 컨테이너 종료가 호출되자 소멸 메서드가 호출됨
초기화, 소멸 인터페이스 단점)
#1 스프링 전용 인터페이스로, 해당 코드(스프링 빈)가 스프링 전용 인터페이스에 의존
#2 초기화/소멸 메서드 이름 변경 불가
#3 코드를 고칠 수 없는 외부 라이브러리에 적용 불가 (외부 라이브러리 코드를 직접 수정하여 인터페이스를 구현할 수 없기 때문)
* 참고
인터페이스를 사용한 초기화, 종료 방법은 스프링 초창기에 나온 방법으로, 현재 더 나은 방법들이 있어서 거의 사용하지 않는다.
참고링크 : https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8?cid=325969
스프링 핵심 원리 - 기본편| 김영한 - 인프런 강의
현재 평점 5.0점 수강생 49,584명인 강의를 만나보세요. 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다. 스프링 기본 기능, 스프
www.inflearn.com
'강의 실습 > 스프링 핵심 원리 - 기본편' 카테고리의 다른 글
| 어노테이션 @PostConstruct, @PreDestroy (0) | 2026.05.04 |
|---|---|
| 빈 등록 초기화, 소멸 메서드 지정 (0) | 2026.05.03 |
| 빈 생명주기 콜백 시작 (0) | 2026.05.02 |
| 자동, 수동의 올바른 실무 운영 기준 (0) | 2026.05.01 |
| 조회한 빈이 모두 필요할 때, List, Map (0) | 2026.04.30 |
댓글