对于最新的稳定版本,请使用 Spring Framework 6.2.0spring-doc.cadn.net.cn

@PostConstruct@PreDestroy

CommonAnnotationBeanPostProcessor不仅识别@Resource注解 还有 JSR-250 生命周期注释:jakarta.annotation.PostConstructjakarta.annotation.PreDestroy.在 Spring 2.5 中引入,对这些 annotations 提供了初始化回调销毁回调中描述的生命周期回调机制的替代方案。前提是CommonAnnotationBeanPostProcessor在 Spring 中注册ApplicationContext, 带有这些 Comments 之一的方法在生命周期的同一点被调用 作为相应的 Spring 生命周期接口方法或显式声明的回调 方法。在以下示例中,缓存在初始化时预先填充,并且 销毁时清除:spring-doc.cadn.net.cn

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...
	}
}

有关组合各种生命周期机制的效果的详细信息,请参阅组合生命周期机制spring-doc.cadn.net.cn

喜欢@Resource@PostConstruct@PreDestroy注释类型是其中的一部分 的标准 Java 库从 JDK 6 到 8。然而,整个javax.annotation软件包与 JDK 9 中的核心 Java 模块分离,并最终在 JDK 11 的。从 Jakarta EE 9 开始,该软件包位于jakarta.annotation现在。如果需要, 这jakarta.annotation-apiartifact 现在需要通过 Maven Central 获取, 只需像任何其他库一样添加到应用程序的 Classpath 中即可。spring-doc.cadn.net.cn