설정 정보에 @Bean(initMethod = "init", destroyMethod = "close") 와 같이, 초기화/소멸 메서드를 지정 가능
설정 정보를 사용하도록 변경)
- src/test/java/hello/core/lifecycle/NetworkClient.java
public class NetworkClient {
...
public void init() {
System.out.println("NetworkClient.init");
connect();
call("초기화 연결 메시지");
}
public void close() {
System.out.println("NetworkClient.close");
disConnect();
}
}
설정 정보에 초기화 소멸 메서드 지정)
- src/test/java/hello/core/lifecycle/BeanLifeCycleTest.java
...
@Configuration
static class LifeCycleConfig {
@Bean(initMethod = "init", destroyMethod = "close")
public NetworkClient networkClient() {
...
}
}
...
- 콘솔
생성자 호출, url = null
NetworkClient.init
connect: http://hello-spring.dev
call: http://hello-spring.dev, message = 초기화 연결 메시지
14:42:13.789 [Test worker] DEBUG o.s.c.a.AnnotationConfigApplicationContext --Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@3241713e, started on Sun May 03 14:42:13 KST 2026
NetworkClient.close
close: http://hello-spring.dev
14:42:13.791 [Test worker] DEBUG o.s.b.f.s.DisposableBeanAdapter --Custom destroy method 'close' on bean with name 'networkClient' completed
설정 정보 사용 특징)
· 메서드명 자유롭게 줄 수 있음
· 스프링 빈이 스프링 코드에 의존하지 않음
· 코드가 아닌 설정 정보 사용으로, 코드 수정이 불가능한 외부 라이브러리에도 초기화, 종료 메서드 적용 가능 (각 라이브러리에서 초기화, 종료 메서드를 제공하기 때문)
종료 메서드 추론)
· @Bean 의 destroyMethod 속성은 기본값이 "(inferred)" (추론)으로 등록되어 있음
라이브러리는 대부분 close, shutdown 이라는 이름의 종료 메서드를 사용하는데, 추론 기능은 close, shutdown 이름의 메서드를 자동으로 호출해준다.
따라서 라이브러리를 직접 스프링 빈으로 등록시, 종료 메서드는 따로 적어주지 않아도 잘 동작한다.
· 추론 기능을 사용하지 않으려면 destroyMethod 속성값을 "" 처럼 빈 공백을 지정한다.
* AutoCloseable 공부하면 좋음
참고링크 : 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
'강의 실습 > 스프링 핵심 원리 - 기본편' 카테고리의 다른 글
| 빈 스코프란? (0) | 2026.05.05 |
|---|---|
| 어노테이션 @PostConstruct, @PreDestroy (0) | 2026.05.04 |
| 인터페이스 InitializingBean, DisposableBean (0) | 2026.05.03 |
| 빈 생명주기 콜백 시작 (0) | 2026.05.02 |
| 자동, 수동의 올바른 실무 운영 기준 (0) | 2026.05.01 |
댓글