You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring6+Java17下CommonAnnotationBeanPostProcessor创建失败求助

问题解决方案

核心原因

  1. 依赖缺失:jakarta.annotation.Resource类属于Jakarta EE注解API,Spring的CommonAnnotationBeanPostProcessor需要这个类来处理@PostConstruct、@PreDestroy以及@Resource注解,你的项目中缺少对应的依赖包。
  2. Java 17的影响:Java 17作为模块化JDK,已完全移除原Java EE的javax.annotation相关API(包括@PostConstruct、@PreDestroy),这些注解现在归属Jakarta EE规范,必须手动引入依赖才能使用。

具体解决步骤

1. 引入对应注解API依赖

  • 若使用Spring 6.x及以上(适配Java 17的版本),在pom.xml中添加:
<dependency>
    <groupId>jakarta.annotation</groupId>
    <artifactId>jakarta.annotation-api</artifactId>
    <version>2.1.1</version> <!-- 可根据Spring版本选择兼容的版本 -->
    <scope>compile</scope>
</dependency>
  • 若使用Spring 5.x(兼容Java 17但最高官方支持Java 11),在pom.xml中添加:
<dependency>
    <groupId>javax.annotation</groupId>
    <artifactId>javax.annotation-api</artifactId>
    <version>1.3.2</version>
    <scope>compile</scope>
</dependency>

2. 确认版本兼容性

  • Spring 6.x+:强制要求Java 17+,完全使用Jakarta EE API(包名从javax改为jakarta)。
  • Spring 5.x:在Java 17中使用时需额外引入javax.annotation-api,可能存在少量兼容性警告,但核心功能正常。

3. 简化配置(可选)

无需手动定义CommonAnnotationBeanPostProcessor,可在lifeCycleBeanConfig.xml中添加<context:annotation-config/>标签,Spring会自动注册包括该处理器在内的各类注解处理器:

<context:annotation-config/>

内容的提问来源于stack exchange,提问作者S14321K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 09:13:16