728x90
반응형
@PostConstruct와 @PreDestroy는 스프링 프레임워크에서 사용되는 어노테이션이다. 이들은 빈의 초기화와 소멸 시점에 메서드를 실행하기 위해 사용된다.
- @PostConstruct: 이 어노테이션은 빈이 생성된 후에 초기화 작업을 수행해야 할 때 메서드에 지정된다. 이 어노테이션이 붙은 메서드는 빈의 생성자가 호출되고 종속성 주입이 완료된 후에 호출된다. 주로 빈의 초기화 작업이나 의존성 설정 등의 작업에 사용된다.
- @PreDestroy: 이 어노테이션은 빈이 소멸되기 전에 수행해야 할 작업을 명시하는 데 사용된다. 이 어노테이션이 지정된 메서드는 빈이 컨테이너에서 제거되기 전에 호출된다. 주로 빈이 종료되기 전에 자원을 정리하거나 상태를 저장하는 데 사용된다.
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
public class MyBean {
// PostConstruct 어노테이션이 지정된 메서드
@PostConstruct
public void init() {
System.out.println("MyBean initialized");
}
// PreDestroy 어노테이션이 지정된 메서드
@PreDestroy
public void cleanup() {
System.out.println("MyBean is being destroyed");
}
}
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class Main {
public static void main(String[] args) {
// 스프링 컨테이너 생성
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
// 컨테이너에 설정 클래스(MyConfig.class) 등록
context.register(MyConfig.class);
// 컨테이너 초기화
context.refresh();
// MyBean 빈 가져오기
MyBean myBean = context.getBean(MyBean.class);
// 스프링 컨테이너 종료
context.close();
}
}
# 위의 코드에서 AnnotationConfigApplicationContext는 스프링 컨테이너를 초기화하고, MyBean을 빈으로 등록한 후에 사용한다. 실행하면 init() 메서드가 먼저 호출되고, 컨테이너가 종료될 때 cleanup() 메서드가 호출된다.
728x90
반응형
'개발일기 > Spring' 카테고리의 다른 글
[Spring]ThreadLocal (0) | 2024.04.01 |
---|---|
[Spring]로그 추적기 (0) | 2024.04.01 |
[Spring]@autowired , @qualifier , @primary (0) | 2024.03.20 |
[Spring]@ComponentScan , @Component , @Autowired (0) | 2024.03.18 |
[Spring]싱클톤 사용시 주의사항. (0) | 2024.03.18 |