스프링빈의 생명주기
데이터베이스 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작시점에 연결을 하고, 종료시점에 연결을 끊는 작업을 진행하기위해서는 객체의 초기화와 종료작업이 필요하다.
빈 생명주기 콜백은 의존관계주입이 완료되거나 종료되는 시점에 스프링빈안의 메서드를 호출해주는 기능이다.
스프링 빈의 이벤트 라이프사이클
스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백 사용 -> 사용 -> 소멸전 콜백 -> 스프링 종료
- 초기화 콜백: 빈이 생성되고, 빈의 의존관계 주입이 완료된 후 바로 호출
- 소멸전 콜백: 빈이 소멸되기 직전에 호출
@PostConstruct
- @PostConstruct 는 WAS 가 뜰 때 bean이 생성된 다음 딱 한번만 실행됨이 보장되기에 어떠한 이유로 여러번 호출되는 상황을 방지
- 애플리케이션 실행시점에 의존관계주입 후 메서드 실행
@PostConstruct
public void init() {
System.out.println("NetworkClient.init");
connect();
call("초기화 연결 메시지");
}
@PreDestroy
- 스프링 컨테이너에서 빈을 소멸시키기 직전에 메서드 실행
- @PostConstruc와 마찬가지로 여러번 호출되는 상황 방지
@PreDestroy
public void close() {
System.out.println("NetworkClient.close");
disConnect();
}
728x90
'Spring' 카테고리의 다른 글
[스프링 MVC 1편] - HttpServletResponse (0) | 2023.01.03 |
---|---|
[스프링 MVC 1편] - 서블릿 HttpServletRequest(http요청데이터) (0) | 2023.01.02 |
[스프링 MVC 1편] - 서블릿 HttpServletRequest(startLine, header) (0) | 2023.01.02 |
[스프링 MVC 1편] - 서블릿 (0) | 2023.01.02 |
[스프링 MVC 1편] - 웹 애플리케이션 이해 (1) | 2022.12.31 |