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

Autowired和Resource的关系

  • 相同点
  • 对于下面的代码来说,如果是Spring容器的话,两个注解的功能基本是等价的,他们都可以将bean注入到对应的field中

  • 不同点
  • 但是请注意,这里说的是基本相同,说明还是有一些不同点的:
    • byName和byType匹配顺序不同
      • 1. Autowired在获取bean的时候,先是byType的方式,再是byName的方式
      • 意思就是先在Spring容器中找以Bean为类型的Bean实例,如果找不到或者找到多个bean,则会通过fieldName来找
      • 举个例子:

      • 当多个类型匹配时,可以使用@Qualifier 注解来指定具体的bean名称
      • 2. Resource在获取bean的时候,和Autowired恰好相反,先是byName方式,然后再是byType方式
      • 当然,我们也可以通过注解中的参数显示指定通过哪种方式
      • 同样举个例子:

      • 它更加灵活,既可以根据类型进行注入,也可以根据名称进行注入;通过name属性可以显式指定需要注入的bean的名称
      • 总的来说,@Autowired 注解更加简洁易用,适用于大多数情况下的依赖注入;而@Resource 注解更加灵活,可以根据不同的需求进行注入
    • 作用域不同
      • 1. Autowired可以作用在构造器,字段,setter方法上
      • 2. Resource只可以使用在field,setter方法上
    • 支持方不同
      • 1. Autowired是Spring提供的自动注入注解,只有Spring容器会支持,如果做容器迁移,是需要修改代码的
      • 2. Resource是JDK官方提供的自动注入注解(JSR-250);它等于说是一个标准或者约定,所有的IOC容器都会支持这个注解;假如系统容器从Spring迁移到其他IOC容器中,是不需要修改代码的
http://www.lryc.cn/news/181425.html

相关文章:

  • HashTable, HashMap, ConcurrentHashMap 之间的区别
  • Maven下载源码出现:Cannot download sources Sources not found for org.springframwork...
  • C进阶--字符函数和字符串函数介绍
  • 算法通关村第五关-二叉树遍历(层数优先)之经典问题:简单的层序遍历、层序遍历分层、自底向上的层序遍历
  • C++左右值及引用
  • 如何备份和恢复数据库
  • 简化数据库操作:探索 Gorm 的约定优于配置原则
  • 保姆级Anaconda安装教程
  • 你写过的最蠢的代码是?——后端篇
  • 快速幂
  • 【题解 动态规划】 Colored Rectangles
  • VsCode好用的扩展插件
  • Linux shell编程学习笔记4:修改命令行提示符格式(内容和颜色)
  • vue-引入使用main.js全局常量
  • 【C语言】【动态内存管理】malloc,free,calloc,realloc
  • Linux性能优化--性能工具-系统CPU
  • Ipython和Jupyter Notebook介绍
  • 数列极差(c++题解)
  • 面试题:熟悉设计模式吗?谈谈简单工厂模式和策略模式的区别
  • Windows + Git + TortoiseGit + Github
  • MySQL数据库索引练习
  • mysql面试题10:MySQL中有哪几种锁?表级锁、行级锁、页面锁区别和联系?
  • ctfshow—1024系列练习
  • javaWeb学生信息管理
  • 玩转gpgpu-sim 04记—— __cudaRegisterBinary() of gpgpu-sim 到底做了什么
  • S-Clustr(影子集群)僵尸网络@Мартин.
  • 认识PostgreSQL
  • 基本的五大排序算法
  • 封装api的理解
  • Unity实现设计模式——命令模式