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

这篇具有很好参考价值的文章主要介绍了解决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

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

 导入对应的依赖即可:


<dependency>
    <groupId>javax.annotation</groupId>
    <artifactId>javax.annotation-api</artifactId>
    <version>1.3.2</version>
</dependency>

方案二:

将高版本的jdk降为JDK1.8文章来源地址https://www.toymoban.com/news/detail-675886.html

到了这里,关于解决Spring mvc + JDK17@Resource无法使用的情况的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微服务 Spring Cloud 2021 Spring Boot 2.7.x Java JDK8升级到JDK17研究

    项目正在使用jdk8 如果要升级到jdk17 则需要升级springboot版本及springcloud版本 (springcloud版本和springboot版本必须匹配 要一块升级) 。目前使用的版本如下: spring boot 版本为 2.1.5.RELEASE spring cloud 版本为 Greenwich.SR2 spring 版本为 5.1.7.RELEASE jdk 由 8 升级到 17 spring boot 由 2.1.5.RELEASE

    2024年02月01日
    浏览(53)
  • 解决Cadence 17.4软件无法启动,capture cis启动缓慢,打开项目缓慢,allegro 打开程序未响应(即使微软拼音切换兼容模式也无法解决的情况)

    该问题并非和谐软件的问题 而是Cadence 授权验证机制导致,正常情况如果刚安装完的新系统不会出现,单很多情况下工程师使用的电脑有多网卡或多虚拟网卡 导致软件难以访问授权端口,至使软件无法正常启动 解决方案: 在高级网络设置里,先禁用掉所有网卡,然后从本地

    2024年02月17日
    浏览(101)
  • 【异常】JDK11提示 import javax.annotation.Resource;报红,无法导入 Resource这个包

    在导入SpringBoot项目之后,import javax.annotation.Resource; 报红,无法导入 Resource这个包 导入新项目,idea的默认jdk版本是内建的11版本,语言编译级别是11。在JDK11版本以后,移除了javax扩展 ,javax.annotation这个包被移除了,所以无法使用@Resource注解。 把项目jdk切换到系统环境的jdk

    2024年02月13日
    浏览(46)
  • Spring MVC多种情况下的文件上传

    上传是Web工程中很常见的功能,SpringMVC框架简化了文件上传的代码,我们首先使用JAVAEE原生方式上传文件来进行详细描述: 这里我们创建新的SpringMVC模块,在web.xml中将项目从2.3改为3.1,即可默认开启el表达式,如下图: 那这里我们需要访问一个页面来进行文件下载 upload.js

    2024年02月13日
    浏览(75)
  • Java配置方式使用Spring MVC

    上一节,我们学习了如何基于XML配置与注解的方式使用Spring MVC,涉及到三个XML配置文件:Spring配置文件(spring-config.xml)、Spring MVC配置文件(spring-mvc-config.xml)、Web部署描述文件(web.xml),这一节,我们通过案例学习如何基于Java配置类与注解的方式使用Spring MVC,只有Java配

    2024年02月05日
    浏览(43)
  • 完美解决 IDEA创建JDK1.8的Spingboot项目但Java版本只能勾选17和21,没有 8

    今天新建项目发现java只能勾选17和21。 原因 进入Springboot官网查看情况,发现在2023年11月24日,3.0以下的版本不再支持了。 解决 IDEA页面创建Spring项目,其实是访问spring initializr去创建项目。我们可以通过阿里云国服去间接创建Spring项目。服务器URL地址替换为 https://start.aliyu

    2024年02月04日
    浏览(66)
  • Java配置方式使用Spring MVC:实战练习

    承接上文《Java配置方式使用Spring MVC》 登录页面 - login.jsp 注:这个页面没有JSP代码,其实可以做成静态页面 - login.html 登录成功页面 - success.jsp(必须是动态页面,因为要获取会话对象中的数据) 如果不用JSP的标签库,要获取会话中的数据,要复杂一点 登录失败页面 - failu

    2024年02月05日
    浏览(55)
  • 新建springboot项目,jdk只有17/21,无法选中1.8

    解决方案1: 将 https://start.spring.io/ 或者 http://start.springboot.io/ 替换为  https://start.aliyun.com/ 解决方案二: 升级jdk版本 ,安装jdk17并配置环境变量,官方称,17版本将会是主流,在springboot3以上版本只支持jdk17以上版本(但当前大多数项目都是jdk1.8的环境,且17并不是完全向下兼

    2024年02月05日
    浏览(61)
  • JDK 17和JDK 8及Spring Boot 2和Spring Boot 3的区别:

    JDK 17和JDK 8的区别: 新的语言特性 JDK 17引入了新的语言特性,如Sealed类、Pattern Matching for instanceof、Switch Expressions、Text Blocks等。这些特性让代码更简洁、可读性更高、易于维护。 性能提升 JDK 17对JIT编译器进行了改进,使得代码的性能得到了提升。此外,JDK 17还引入了一个新

    2024年02月11日
    浏览(42)
  • 解决Spring Initializr只能创建为Java 17版本以上的问题

      目前我们发现使用IntelliJ IDEA通过Spring Initializr创建创建Spring Boot项目只能创建Java 17版本以上,但我们常用的还是Java 8版本,那么该如何解决呢?   Spring Initializr是Spring官方提供的一个用于初始化Spring Boot项目的工具。它可以帮助开发人员快速创建一个基于Spring Boot的项目

    2024年02月04日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包