首页 > 编程语言 >JDK21中找不到 javax.annotation.Resource 了?

JDK21中找不到 javax.annotation.Resource 了?

时间:2024-09-18 19:34:51浏览次数:1  
标签:JDK21 Java JDK EE Jakarta javax Resource annotation

在 JDK 9 及以后版本,特别是到 JDK 21,javax.annotation.Resource 这样的类已经不再包含在标准的 JDK 中。原因是从 JDK 9 开始,Java 进行了模块化(Project Jigsaw),并移除了部分与 Java EE(现在称为 Jakarta EE)相关的包,例如 javax.annotation

为什么会找不到 javax.annotation.Resource

Java 的模块化系统将很多与企业应用相关的 API 移出了 JDK 的标准库。这些类和包原来是属于 Java EE 的一部分,随着 Java 9 的模块化改革和 Java EE 的转移,这些类被分离了出来,转移到 Jakarta EE 项目下,由 Eclipse Foundation 维护。

javax.annotation 包是 Java EE 的一部分,并且已经从 JDK 中移除,迁移到了 Jakarta EE 的命名空间中,使用的包名变成了 jakarta.annotation

解决方案

  1. 使用 Jakarta EE 中的 jakarta.annotation

    • 如果你正在开发企业级应用,推荐使用 Jakarta EE 提供的依赖。可以将 javax.annotation 替换为 jakarta.annotation,新版本的类名为 jakarta.annotation.Resource

    Maven 依赖示例

    <dependency>
        <groupId>jakarta.annotation</groupId>
        <artifactId>jakarta.annotation-api</artifactId>
        <version>2.0.0</version>
    </dependency>
    
  2. 使用 Java EE 依赖

    • 如果你希望继续使用 javax.annotation,可以手动添加 Java EE 相关的库,来引入你需要的类。比如,使用以下 Maven 依赖:

    Maven 依赖示例

    <dependency>
        <groupId>javax.annotation</groupId>
        <artifactId>javax.annotation-api</artifactId>
        <version>1.3.2</version>
    </dependency>
    
  3. 引入第三方库

    • 有些第三方库也提供了对 javax.annotation 类的支持。可以查找是否有包含 javax.annotation 包的库,并将其引入你的项目。

总结

在 JDK 21 中,javax.annotation.Resource 已经不再内置。如果你需要继续使用这个类,可以通过引入 Jakarta EE 的 jakarta.annotation 包或 Java EE 的 javax.annotation API 来解决。推荐迁移到 Jakarta EE 的新命名空间,以确保兼容未来的技术发展。

标签:JDK21,Java,JDK,EE,Jakarta,javax,Resource,annotation
From: https://www.cnblogs.com/Tifahfyf/p/18419197

相关文章

  • Resource Acquisition Is Initialization
    在C++中,资源获取即初始化(RAII,ResourceAcquisitionIsInitialization)是一种管理资源的编程惯用法。其核心思想是将资源的获取和释放绑定到对象的生命周期中。具体来说:资源获取:在对象构造时获取资源,比如内存、文件句柄、网络连接等。将资源的句柄或指针保存在对象的成员......
  • Paper Reading: Deep forest auto-Encoder for resource-Centric attributes graph em
    目录研究动机文章贡献本文方法整体思想autoencoder预处理器深度森林编码生成器实验结果数据集和实验设置节点分类节点聚类用户推荐消融实验调参实验优点和创新点PaperReading是从个人角度进行的一些总结分享,受到个人关注点的侧重和实力所限,可能有理解不到位的地方。具体的细节......
  • ANAH: Analytical Annotation of Hallucinations in Large Language Models
    本文是LLM系列文章,针对《ANAH:AnalyticalAnnotationofHallucinationsinLargeLanguageModels》的翻译。ANAH:大型语言模型中幻觉的分析注释摘要1引言2数据集构造3幻觉注释器4实验5相关工作6结论和未来工作7局限性摘要减少大型语言模型(LLM)的......
  • JAVA-IO获取resource WEB-INF 中文件 JAR包中
    getResource+getPath()classPaththis.getClass().getClassLoader().getResource(StringUtils.EMPTY).getPath()Stringpath=this.getClass().getClassLoader().getResource(fileName).getPath();StringfilePath=URLDecoder.decode(path,StandardCharsets.UTF_8);......
  • WPF JumpList JumpList ApplicationPath IconResourcePath
    //App.xaml<Applicationx:Class="WpfApp369.App"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:local=&......
  • @Autowired和@Resource的区别
    1--@Autowired@Autowired是Spring里面提供的一个注解,它默认是根据类型来实现Bean的依赖注入;@Autowired里面有一个required属性,默认值是true表示强制要求bean实例的一个注入,在应用启动的时候,如果IOC容器中不存在对应类型的bean,那么启动就会报错;如果我们不希望实现依赖注入就可以......
  • “Resource Forest” 模型通过将用户帐户和资源分开到不同的AD森林中,增强了安全性、管
    在ActiveDirectory(AD)域环境中,“ResourceForest”模型是一种架构设计用于优化和管理大型、复杂的网络环境。这种模型主要用于处理企业中不同的组织单位和资源的需求,确保安全性、灵活性和管理的简便性。ResourceForestModel的定义和特点定义:ResourceForest 模型是在AD......
  • Flutter 3.24 构建 release 抛出部分依赖 AAPT: error: resource android:attr/lStar
    问题截图:一些讨论:https://github.com/transistorsoft/flutter_background_fetch/issues/369问题原因及解决方案:@Aziz-T该问题与插件的compileSdkVersion和targetSdkVersion有关。出现该问题的原因是部分插件的compileSdkVersion和targetSdkVersion版本过旧。请前往......
  • Spring 注解 @Resource 和 @Autowired 区别对比
    原文:Spring注解@Resource和@Autowired区别对比@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。共同点两者都可以写在字段和setter方法上。两者如果......
  • LEAN 类型理论之注解(Annotations of LEAN Type Theory)—— 归纳类型(Inductive Type)浅
        归纳类型(InductiveType)的核心是,该类型是基于归纳原则(Inductiveprinciple,basecase&inductivestep)来定义的。简单来说,在定义归纳类型时,会使用其归纳类型自身。如下图的类型等式(TypeEquation),K是其定义体(ThebodyofDefinition),调用其类型自身:        ......