当前位置: 首页 > news >正文

@Resurce和@Autowired的区别

@Resource@Autowired 是 Java 中常用的两个注解,用于自动装配依赖对象。它们的主要区别如下:

  1. 来源不同:

    @Resource 是 Java EE 提供的注解,属于 J2EE 的一部分,它由 JSR-250 规范定义。

    @Autowired 是 Spring 框架提供的注解,属于 Spring 的一部分,它通过使用反射来进行注入。

  2. 名称匹配方式不同:

    @Resource 可以通过 name 属性指定依赖对象的名称(可以是属性名或者指定的名称),或者根据类型进行匹配。

    @Autowired 默认通过类型进行匹配,如果存在多个同类型的对象,可以通过 @Qualifier 注解指定具体的名称。

  3. 兼容性不同:

    @Resource 是 JSR-250 规范定义的注解,支持 Java 标准,可以在 Java EE 应用程序中使用。

    @Autowired 是 Spring 框架提供的注解,支持 Spring IoC 容器,并且可以与其他 Spring 相关注解搭配使用。

  4. 使用范围不同:

    @Resource 可以用于字段、setter 方法和构造函数上。

    @Autowired 主要用于构造函数、setter 方法和字段上,支持更灵活的注入。

  5. 引入的包不同:

    @Resource 的包路径是 javax.annotation.Resource

    @Autowired 的包路是 org.springframework.beans.factory.annotation.Autowired

简而言之,@Resource 是 Java EE 提供的注解,而 @Autowired 是 Spring 提供的注解。它们在注入方式、兼容性和使用范围等方面略有区别。在 Spring 应用中,通常推荐使用 @Autowired 注解来实现依赖注入。

http://www.lryc.cn/news/136386.html

相关文章:

  • ResNet简介
  • 了解单例模式,工厂模式(简单易懂)
  • 【中危】 Apache NiFi 连接 URL 验证绕过漏洞 (CVE-2023-40037)
  • 【Git版本控制工具使用---讲解一】
  • NLP | 基于LLMs的文本分类任务
  • 攻防世界-base÷4
  • 【Java转Go】快速上手学习笔记(三)之基础篇二
  • 【vue 引入pinia与pinia的详细使用】
  • USACO18DEC Fine Dining G
  • fckeditor编辑器的两种使用方法
  • 数据结构,查找算法(二分,分块,哈希)
  • C++(Qt)软件调试---gdb调试入门用法(12)
  • shell和Python 两种方法分别画 iostat的监控图
  • 设计模式(9)建造者模式
  • PHP 创业感悟交流平台系统mysql数据库web结构apache计算机软件工程网页wamp
  • 工作流程引擎之flowable(集成springboot)
  • leetcode54. 螺旋矩阵(java)
  • go gorm 查询
  • Flutter GetXController 动态Tabbar 报错问题
  • Redis(缓存预热,缓存雪崩,缓存击穿,缓存穿透)
  • UE4/5Niagara粒子特效学习(使用UE5.1,适合新手)
  • from moduleA import * 语句 和import moduleA 的区别
  • 【leetcode 力扣刷题】交换链表中的节点
  • 学会Mybatis框架:让你的代码更具灵活性、可维护性、安全性和高效性【二.动态SQL】
  • Oracle 中 ROWNUM 使用问题记录
  • MySQL数据库:内置函数
  • 【C++杂货铺】探索string的底层实现
  • c++ day1
  • 变动的Python爬虫实现
  • mybatis-plus--配置-(sql)日志输出-自动填充-分页-多数据源-逻辑删除