Using Postconstruct And Predestroy
Uso de @PostConstruct y @PreDestroy
CommonAnnotationBeanPostProcessor no solo reconoce la anotación @Resource, sino también las anotaciones de ciclo de vida JSR-250: jakarta.annotation.PostConstruct y jakarta.annotation.PreDestroy.
Introducido en Spring 2.5, el soporte para estas anotaciones ofrece una alternativa al mecanismo de devoluciones de llamada de inicialización y destrucción.
Siempre que CommonAnnotationBeanPostProcessor esté registrado en el ApplicationContext de Spring, un método anotado con una de estas anotaciones se invoca en el mismo punto del ciclo de vida que el método correspondiente de una interfaz de ciclo de vida de Spring o un método de devolución de llamada declarado explícitamente.
En el siguiente ejemplo, la caché se rellena durante la inicialización y se limpia durante la destrucción:
public class CachingMovieLister {
@PostConstruct
public void populateMovieCache() {
// Rellena la caché de películas durante la inicialización...
}
@PreDestroy
public void clearMovieCache() {
// Limpia la caché de películas durante la destrucción...
}
}
Para obtener información sobre los efectos de combinar distintos mecanismos de ciclo de vida, consulta la sección sobre combinación de mecanismos de ciclo de vida.
Al igual que @Resource, los tipos de anotación @PostConstruct y @PreDestroy formaban parte de las bibliotecas estándar de Java desde JDK 6 hasta JDK 8. Sin embargo, todo el paquete javax.annotation se separó de los módulos principales de Java en JDK 9 y finalmente se eliminó en JDK 11.
Desde Jakarta EE 9, el paquete se encuentra en jakarta.annotation. Cuando sea necesario, debes obtener el artefacto jakarta.annotation-api desde Maven Central y añadirlo al classpath de la aplicación como cualquier otra biblioteca.