Using @PostConstruct and @PreDestroy(한글)

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

  • Java

  • Kotlin

public class CachingMovieLister {

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

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

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

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

다양한 라이프사이클 메커니즘을 결합할 때의 효과에 대한 자세한 내용은 라이프사이클 메커니즘 결합하기를 참조하세요.

@Resource 와 마찬가지로 @PostConstruct@PreDestroy 어노테이션 유형은 JDK 6에서 8까지 표준 Java 라이브러리의 일부였습니다. 그러나 전체 javax.annotation 패키지는 JDK 9에서 핵심 Java 모듈에서 분리되었고 결국 JDK 11에서 제거되었습니다. Jakarta EE 9부터 이 패키지는 이제 jakarta.annotation`에 있습니다. 필요한 경우 이제 다른 라이브러리와 마찬가지로 애플리케이션의 클래스 경로에 추가하기 위해 Maven Central을 통해 `jakarta.annotation-api 아티팩트를 가져와야 합니다.