Using @PostConstruct and @PreDestory

2024. 11. 14. 20:19Spring Framework/Spring IoC

CommonAnnotationBeanPostProcessor는 @Resource 애노테이션뿐만 아니라 JSR-250 라이프사이클 애노테이션인 jakarta.annotation.PostConstruct와 jakarta.annotation.PreDestroy도 인식합니다. Spring 2.5에서 도입된 이러한 애노테이션 지원은 initialization callbacksdestruction callbacks에서 설명된 라이프사이클 콜백 메커니즘에 대한 대안을 제공합니다. CommonAnnotationBeanPostProcessor가 Spring ApplicationContext 내에 등록되어 있으면, 이러한 애노테이션이 부여된 메서드는 해당 Spring 라이프사이클 인터페이스 메서드나 명시적으로 선언된 콜백 메서드와 동일한 라이프사이클 지점에서 호출됩니다. 다음 예제에서 캐시는 초기화 시 미리 채워지고 소멸 시 지워집니다.

public class CachingMovieLister {

	@PostConstruct
	public void populateMovieCache() {
		// populates the movie cache upon initialization...
	}

	@PreDestroy
	public void clearMovieCache() {
		// clears the movie cache upon destruction...
	}
}

 

다양한 라이프사이클 메커니즘을 결합할 때의 효과에 대한 자세한 내용은 " Combining Lifecycle Mechanisms "를 참조하십시오

@Resource, @PostConstruct, 그리고 @PreDestroy 애노테이션 타입은 JDK 6에서 8까지 표준 Java 라이브러리의 일부였습니다. 그러나 JDK 9에서 javax.annotation 패키지가 코어 Java 모듈에서 분리되었고, JDK 11에서 결국 제거되었습니다. Jakarta EE 9부터 이 패키지는 이제 jakarta.annotation에 포함됩니다. 필요한 경우, 이제 jakarta.annotation-api 아티팩트를 Maven Central에서 가져와 다른 라이브러리처럼 애플리케이션의 클래스패스에 추가해야 합니다.

 

'Spring Framework > Spring IoC' 카테고리의 다른 글

Registering a LoadTimeWeaver  (0) 2024.11.15
Environment Abstraction  (1) 2024.11.14
Using @Value  (0) 2024.11.14
Injection with @Resource  (0) 2024.11.14
Using CustomAutowireConfigure  (0) 2024.11.14