解决Spring mvc + JDK17@Resource无法使用的情况

问题描述

我在使用jdk17进行Spring mvc开发时发现 @Resource用不了了。

原因

因为JDK版本升级的改动,在Jdk9~17环境下,搭建Springboot项目,会出现原有@Resource(javax.annotation.Resource)不存在的问题,导致项目从Jdk8迁移到高版本时遇到的问题

从Jdk9开始,JavaEE从Jdk中分离,jdk就移除掉了javax.annotation.jar包的默认集成,从而导致版本不兼容。所以一旦spring项目从JDK8升到高版本,都会出现javax.annotation.Resource无法引用报红。

java EE 即 java Enterprise Edition,企业级应用,目标是制定一系列企业级应用的标准服务。常见的 javax.servlet, javax.annotation。

Oracle 收购了创造 java 的 SUN 公司,Oracle 又不想发展 java EE 了,就把 java EE 交给 Eclipse 社区了,但是又因为不知名的原因,禁止社区使用 javax 这个名字。所以,javax.servlet 就变成了 jakarta.servlet, jakarta.annotation。api无法向前兼容。

java ee 的最后一个版本也是 8,以后就再也没有 java ee 的新版本

解决方案

方案一:手动导入javax.annotation包

去maven仓库搜索:

Javax Annotation API

导入对应的依赖即可:

复制代码
<dependency>
    <groupId>javax.annotation</groupId>
    <artifactId>javax.annotation-api</artifactId>
    <version>1.3.2</version>
</dependency>

方案二:

将高版本的jdk降为JDK1.8

相关推荐
Le1Yu8 小时前
配置管理的配置与拉取、热更新的配置、动态路由
java
Seven978 小时前
剑指offer-34、第⼀次出现的字符
java
Knight_AL8 小时前
代理模式 vs AOP:支付服务中的日志增强实践(含执行顺序详解)
spring·代理模式
摇滚侠8 小时前
Spring Boot 3零基础教程,properties文件中配置和类的属性绑定,笔记14
java·spring boot·笔记
星光一影8 小时前
HIS系统天花板,十大核心模块,门诊/住院/医保全流程打通,医院数字化转型首选
java·spring boot·后端·sql·elementui·html·scss
JAVA学习通9 小时前
零基础OSS组件(Java)
java·linux·leetcode
草莓熊Lotso9 小时前
《算法闯关指南:优选算法--二分查找》--19.x的平方根,20.搜索插入位置
java·开发语言·c++·算法
YJlio9 小时前
Process Monitor 学习笔记(5.7):长时间运行追踪与日志文件体积的控制
java·笔记·学习
失散139 小时前
分布式专题——45 ElasticSearch基础数据管理详解
java·分布式·elasticsearch·架构
没有bug.的程序员9 小时前
分布式监控体系:从指标采集到智能告警的完整之道
java·分布式·告警·监控体系·指标采集