@PreDestroy 어노테이션스프링입문/입문2024. 9. 26. 14:04
Table of Contents
반응형
@PreDestroy 어노테이션
@PreDestroy
어노테이션은 Java의 Java EE (Enterprise Edition) 및 Spring 프레임워크에서 사용하는 어노테이션으로, 빈(Bean)이 소멸되기 전에 호출될 메서드를 지정하는 역할을 합니다. 주로 애플리케이션에서 자원을 정리하거나 종료 작업을 처리할 때 사용됩니다.
주요 개념
@PreDestroy
어노테이션의 동작:- 빈이 컨테이너(Spring 또는 Java EE 컨테이너)에 의해 제거되기 직전에 실행되는 메서드를 정의합니다.
- 이 메서드는 빈의 라이프사이클이 끝날 때 호출되어, 해당 빈이 사용한 리소스나 연결된 자원(파일, 데이터베이스 연결 등)을 안전하게 정리할 수 있는 기회를 제공합니다.
- 사용 예시:
import javax.annotation.PreDestroy;
public class MyBean {
// 빈이 소멸되기 전에 호출되는 메서드
@PreDestroy
public void cleanup() {
System.out.println("Cleaning up resources before bean is destroyed");
// 리소스 정리, 파일 닫기, DB 연결 종료 등
}
}
Spring에서의 활용
- Spring에서
@PreDestroy
는 보통 싱글톤 빈이나 프로토타입 빈에 대해 사용되며, 해당 빈이 스프링 컨테이너에 의해 관리되고 소멸될 때 호출됩니다. - 빈이 애플리케이션에서 더 이상 필요하지 않을 때나, 컨테이너가 종료될 때,
@PreDestroy
가 붙은 메서드가 호출됩니다.
자주 쓰이는 상황
- 데이터베이스 연결 해제
- 파일이나 네트워크 자원 정리
- 스레드 풀 종료
- 캐시 정리
@PreDestroy
는 자원을 안전하게 정리하여 메모리 누수나 자원 잠금과 같은 문제를 방지하는 데 중요한 역할을 합니다.
반응형
'스프링입문 > 입문' 카테고리의 다른 글
의존성 주입 3가지 방법 - (생성자 주입, Field 주입, Setter 주입) (0) | 2024.11.10 |
---|---|
스프링 빈을 등록하는 두 가지 방법(@Component, @Bean) (1) | 2024.11.09 |
스프링 입문 02편 IntelliJ IDEA와 Git Bash 연동과 스프링 입문 (0) | 2022.01.11 |
스프링 입문 01편, 웹, JAVA11과 intellJ 설치 및 프로젝트 환경설정 (0) | 2022.01.10 |
@mellona :: 주니어의 다사다난 성장기
안녕하세요. si 회사 소속 sm LMS 팀에 소속중인 1년차 백엔드 개발자입니다😀 함께 나누고 성장하는 것을 좋아해요. 언제든 디스코드나 구글 메일로 질문해도 됩니다!
⭐ 잘못된 내용은 댓글 적어주세요 :)