首页 > 其他分享 >Cannot resolve symbol 'Resource'

Cannot resolve symbol 'Resource'

时间:2023-12-13 23:01:03浏览次数:43  
标签:Java symbol Resource 标识 Cannot JSR 注解 250

扩展JSR-250注解@Resource

  • 理解JSR系列注解

    JSR(Java Specification Requests)是Java平台标准化进程中的一种技术规范,而JSR注解是其中一部分重要的内容。按照JSR的分类以及注解语义的不同,可以将JSR注解分为不同的系列,主要有以下几个系列:

    1. JSR-175: 这个JSR是Java SE 5引入的,是Java注解最早的规范化版本,Java SE 5后的版本中都包含该JSR中定义的注解。主要包括以下几种标准注解:
    • @Deprecated: 标识一个程序元素(如类、方法或字段)已过时,并且在将来的版本中可能会被删除。
    • @Override: 标识一个方法重写了父类中的方法。
    • @SuppressWarnings: 抑制编译时产生的警告消息。
    • @SafeVarargs: 标识一个有安全性警告的可变参数方法。
    • @FunctionalInterface: 标识一个接口只有一个抽象方法,可以作为lambda表达式的目标。
    1. JSR-250: 这个JSR主要用于在Java EE 5中定义一些支持注解。该JSR主要定义了一些用于进行对象管理的注解,包括:
    • @Resource: 标识一个需要注入的资源,是实现Java EE组件之间依赖关系的一种方式。
    • @PostConstruct: 标识一个方法作为初始化方法。
    • @PreDestroy: 标识一个方法作为销毁方法。
    • @Resource.AuthenticationType: 标识注入的资源的身份验证类型。
    • @Resource.AuthenticationType: 标识注入的资源的默认名称。
    1. JSR-269: 这个JSR主要是Java SE 6中引入的一种支持编译时元数据处理的框架,即使用注解来处理Java源文件。该JSR定义了一些可以用注解标记的注解处理器,用于生成一些元数据,常用的注解有:
    • @SupportedAnnotationTypes: 标识注解处理器所处理的注解类型。
    • @SupportedSourceVersion: 标识注解处理器支持的Java源码版本。
    1. JSR-330: 该JSR主要为Java应用程序定义了一个依赖注入的标准,即Java依赖注入标准(javax.inject)。在此规范中定义了多种注解,包括:
    • @Named: 标识一个被依赖注入的组件的名称。
    • @Inject: 标识一个需要被注入的依赖组件。
    • @Singleton: 标识一个组件的生命周期只有一个唯一的实例。
    1. JSR-250: 这个JSR主要是Java EE 5中定义一些支持注解。该JSR包含了一些支持注解,可以用于对Java EE组件进行管理,包括:
    • @RolesAllowed: 标识授权角色
    • @PermitAll: 标识一个活动无需进行身份验证。
    • @DenyAll: 标识不提供针对该方法的访问控制。
    • @DeclareRoles: 声明安全角色。
      但是你要理解JSR是Java提供的技术规范,也就是说,他只是规定了注解和注解的含义,JSR并不是直接提供特定的实现,而是提供标准和指导方针,由第三方框架(Spring)和库来实现和提供对应的功能。
  • JSR-250 @Resource注解

    @Resource注解也可以完成属性注入。那它和@Autowired注解有什么区别?

    • @Resource注解是JDK扩展包中的,也就是说属于JDK的一部分。所以该注解是标准注解,更加具有通用性。(JSR-250标准中制定的注解类型。JSR是Java规范提案。)
    • @Autowired注解是Spring框架自己的。
    • @Resource注解默认根据Bean名称装配,未指定name时,使用属性名作为name。通过name找不到的话会自动启动通过类型装配。
    • @Autowired注解默认根据类型装配,如果想根据名称装配,需要配合@Qualifier注解一起用。
    • @Resource注解用在属性上、setter方法上。
    • @Autowired注解用在属性上、setter方法上、构造方法上、构造方法参数上。
      @Resource注解属于JDK扩展包,所以不在JDK当中,需要额外引入以下依赖:【高于JDK11或低于JDK8需要引入以下依赖
    <dependency>
        <groupId>jakarta.annotation</groupId>
        <artifactId>jakarta.annotation-api</artifactId>
        <version>2.1.1</version>
    </dependency>
    

来源:https://www.bilibili.com/video/BV1AP411s7D7/

最后编辑时间:2023年12月13日22:53:24

标签:Java,symbol,Resource,标识,Cannot,JSR,注解,250
From: https://www.cnblogs.com/tothk/p/17900140.html

相关文章

  • [JMeter] Apache Jmeter导入jmx压测脚本时,报错CannotResolveClassException: xxx
    1问题描述Jmeter导入jmx压测脚本时,报错CannotResolveClassException:xxxJMeterVersion:5.5JDK:8报错的关键信息:kg.apc.jmeter.vizualizers.CorrectedResultCollectorcom.thoughtworks.xstream.converters.ConversionException可见:缺少相关依赖包。2解......
  • pure-admin pnpm  ERR_PNPM_FROZEN_LOCKFILE_WITH_OUTDATED_LOCKFILE  Cannot perf
    事情是这样的,用的开源pure-admin的框架,用的是pnpm,本地环境都是可以的,但是发布到生成就报以下错误  然后看部署参数,是这样的,强制用了lock文件,本来也没问题 报错的意思是json文件跟pnpm-lock.json文件不匹配但是本地看着是匹配的,随便挑选几个包版本看着也是一致的然后......
  • 安装jsdom/tough-cookie 【Error: Cannot find module ‘jsdom‘】的解决方法
    本人使用nvm安装的node解决方法:cmd管理员模式下npminstallnpminstall-gjsdomtough-cookie与上同理再把目录放到环境变量中参考:https://blog.csdn.net/qyk594760/article/details/134353102https://blog.csdn.net/JJ_Smilewang/article/details/127823953......
  • FAILED: ParseException line 1:65 cannot recognize input near 'row' 'formatted' &
    hive报FAILED:ParseExceptionline1:65cannotrecognizeinputnear'row''formatted''delimited'intablerowformatspecification错误语句:insertoverwritelocaldirectory'/home/ljpbd/datas/student'rowformatteddel......
  • FAILED: ParseException line 1:17 cannot recognize input near 'student2' 'select'
     hive向表中插入数据时报错:FAILED:ParseExceptionline1:17cannotrecognizeinputnear'student2''select''id'indestinationspecification错误:insertoverwritestudent2selectid,namefromstudent;正确:insertoverwritetablest......
  • Redis报错:WARNING: The TCP backlog setting of 511 cannot be enforced because /pro
    报错内容:1:C08Dec202305:47:33.348#oO0OoO0OoO0OoRedisisstartingoO0OoO0OoO0Oo1:C08Dec202305:47:33.348#Redisversion=7.0.5,bits=64,commit=00000000,modified=0,pid=1,juststarted1:C08Dec202305:47:33.348#Configurationloaded1:M08De......
  • ResourceBundle使用详解
    ResourceBundle使用详解这个类主要用来解决国际化和本地化问题。国际化和本地化可不是两个概念,两者都是一起出现的。可以说,国际化的目的就是为了实现本地化。比如对于“取消”,中文中我们使用“取消”来表示,而英文中我们使用“cancel”。若我们的程序是面向国际的(这也是软件发展的......
  • dict( [1,2] ) # TypeError: cannot convert dictionary update sequence element
    dict([1,2])#TypeError:cannotconvertdictionaryupdatesequenceelement#0toasequence#listtupleset都可以,并且list(list([1,2]))==[1,2]#仍然是[1,2]list({"key":"value"})#只保留键名......
  • Symbol Namespaces (符号命名空间)(翻译 by chatgpt)
    原文:https://www.kernel.org/doc/html/latest/core-api/symbol-namespaces.html以下文件描述了如何使用符号命名空间来构造通过EXPORT_SYMBOL()宏系列导出的内核符号的导出表面。1.介绍符号命名空间被引入作为结构化内核API导出表面的一种手段。它允许子系统维护者将其导出的......
  • P6入门:项目初始化9-项目详情之资源Resource
    前言使用项目详细信息查看和编辑有关所选项目的详细信息,在项目创建完成后,初始化项目是一项非常重要的工作,涉及需要设置的内容包括项目名,ID,责任人,日历,预算,资金,分类码等等,在接下来的博文中,我将结合官方帮助介绍这些基本设置,希望给对P6感兴趣的人带来帮助。涉及P6 项目详情设置包括:G......