前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >spring项目无法引入@Resource注解问题[通俗易懂]

spring项目无法引入@Resource注解问题[通俗易懂]

作者头像
全栈程序员站长
发布2022-07-01 19:10:18
1.2K0
发布2022-07-01 19:10:18
举报

大家好,又见面了,我是你们的朋友全栈君。

问题:在spring项目中引入@Resource注解的时候,有红色下划线错误,而且输入注解的时候不能出现自动代码补全。

解决办法:Spring项目中缺少javax.annotation包的依赖。在maven配置文件pom.xml中加入依赖。

代码语言:javascript
复制
<!-- https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api -->
<dependency>
    <groupId>javax.annotation</groupId>
    <artifactId>javax.annotation-api</artifactId>
    <version>1.2</version>
</dependency>

1、在spring的配置文件中导入命名空间

代码语言:javascript
复制
  xmlns:context="http://www.springframework.org/schema/context"       

  http://www.springframework.org/schema/context         

 http://www.springframework.org/schema/context/spring-context-2.5.xsd

2、引入注解解析器

代码语言:javascript
复制
context:annotation-config></context:annotation-config>

3、在spring的配置文件中把bean引入进来

4、在一个类的属性上加

代码语言:javascript
复制
  @Resource(name="student_annotation")
            private Student student;
         从该注解本身
               @Target({TYPE, FIELD, METHOD})
               @Retention(RUNTIME)
               public @interface Resource {
                  String name() default "";
               }

1、该注解可以用于属性上或者方法上,但是一般用于属性上

2、该注解有一个属性name,默认值为””

5、分析整个过程

1、当启动spring容器的时候,spring容器加载了配置文件

2、在spring配置文件中,只要遇到bean的配置,就会为该bean创建对象

3、在纳入spring容器的范围内查找所有的bean,看哪些bean的属性或者方法上加有@Resource

4、找到@Resource注解以后,判断该注解name的属性是否为””(name没有写)

如果没有写name属性,则会让属性的名称的值和spring中ID的值做匹配,如果匹配成功则赋值

如果匹配不成功,则会按照类型进行匹配,如果匹配不成功,则报错

如果有name属性,则会按照name属性的值和spring的bean中ID进行匹配,匹配成功,则赋值,不成功则报错

——————————————————————————————————————————————————————

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/147248.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档