首页 > 其他分享 >@Autowired 和 @Resource的区别

@Autowired 和 @Resource的区别

时间:2023-08-01 21:01:16浏览次数:35  
标签:依赖 Resource 区别 Autowired 默认 注解 注入

@Autowired 和 @Resource 都可以用于注入Bean对象,并且都可以自动装配依赖关系,但他们主要的区别在于:

1. 使用的注解不同

@Autowired 是Spring提供的注解,而 @Resource 是JSR-250规范提供的注解。

2. 默认情况下注入的方式不同

@Autowired 默认按照类型装配依赖对象,当发现有多个Bean满足依赖时,又会根据Bean的名称进行匹配;而 @Resource 则默认按照名称进行装配。

3.

@Autowired 可以对构造函数、Setter方法、成员变量进行注入,可以自动注入任何一个Spring容器中已经创建好的Bean对象;而@Resource 只能对成员变量进行注入,只能注入bean对象,不能注入简单类型和null值。

4.

@Autowired 注解没有指定 name 属性时,如果同一类型的 bean 有多个时,就会抛出异常;而@Resource 注解如果没有指定 name属性,则使用默认的 byName 注入方式,如果找不到对应的 bean,则会抛出异常。

在你给出的两个例子中,GuestInfoService 类使用了 @Resource 注解注入依赖的 GuestInfoDao 对象,而 CivilAction 类使用了 @Autowired 注解注入依赖的 ICivilService 对象。根据以上区别,如果你想使用默认按照名称装配依赖对象,可以使用 @Resource 注解;如果你想使用默认按照类型装配依赖对象,可以使用 @Autowired 注解。

标签:依赖,Resource,区别,Autowired,默认,注解,注入
From: https://blog.51cto.com/u_16200950/6928259

相关文章

  • bm25算法与tf-idf比较,区别,已经使用长江
    bm25算法与tf-idf算法比较一、tf-idf算法介绍词频(TF)=某篇文章中某个关键词出现的次数/文章总字数,逆文档频率(IDF)=log(语料库文章总数/包含该关键词的文章总数+1),tfidf=tf*idf,下面给大家举个实例,你大概就明白了,例如语料库中有以下三篇文章:第一篇:张一山与杨紫疑似相恋;第二篇:C罗又......
  • C# HttpUtility.UrlEncode与 Uri.EscapeDataString区别
    相同点均是对url进行编码区别HttpUtility.UrlEncode会将空格转换为加号(+)Uri.EscapeDataString会将空格转换为%20适用场景HttpUtility.UrlEncode适用于url是查询参数Uri.EscapeDataString适用于url是作为文件路径使用......
  • import时加{}与不加的区别
    在javascript中,使用import语句导入模块时,加上花括号{}与不加的区别在于:1.不加花括号导入整个模块对象。例如:importaxiosfrom'axios'会导入整个axios模块,可以通过axios.get()等方法来使用它。2.加上花括号只导入模块中的指定变量或函数。例如:import{get,post}f......
  • vuex和Pinia使用上的区别-Vue3推荐上Pinia
    Vuex和Pinia都是Vue.js状态管理库,可以管理组件之间的共享状态。它们的区别在于实现方式和API设计。Vuex是Vue.js的官方状态管理库,采用集中式的方式管理全局的状态。在Vuex中,应用程序的状态存储在一个单一的store中,组件只能通过dispatch、commit等方法来修改store中的状态。Vuex还提......
  • Java之String系列--String, StringBuffer, StringBuilder区别
    简介本文介绍Java的String,StringBuffer,StringBuilder的区别。项StringStringBufferStringBuffer线程安全性不可变。原因:value数组是final类型。因为不可变,所以每次操作生成新对象。因为不可变,所以每次操作生成新对象。原因:value数组是final类型。原因:其父类(AbstractStringBuilder......
  • 面试官问我:char和varchar的区别 怎么办?愣着干嘛?进来白嫖啊!
    ......
  • 工厂模式和代理模式的区别?
    工厂模式是指当有一个抽象类和多个实体类时,抽象类和实体类之间,通过工厂类来进行关联。而工厂类是通过create方法,创造实体类,利用if或者switch进行条件判断返回创建的产品。代理模式不创建实体类。它是通过方法的拼接来代替对象完成某些特殊的前置和后置服务advice。......
  • 依赖注入(DI)、控制反转(IOC)、反射的区别和联系?
    实现IOC控制反转的技术叫做反射。而反射通俗的说,反射就是根据给出的类名(字符串)来生成对象。这种编程方式可以让应用在运行时才动态决定生成哪一种对象。反射的应用是很广泛的,像Hibernate、Spring中都是用“反射”做为最基本的技术手段。其实可以把IoC模式看作工厂模式的升华,把IoC......
  • 【软件测试】web测试与app测试的区别
    系统架构方面:web项目,一般都是b/s架构,基于浏览器的app项目,则是c/s的,必须要有客户端,用户需要安装客户端。 B/S只要更新了服务器端,客户端就会同步会更新。APP项目则需要客户端和服务器都更新。  app下修改了服务端,意味着客户端用户所使用的核心版本都需要进......
  • ServletRequest与HttpServletRequest有什么区别
    ServletRequest和HttpServletRequest是JavaServletAPI中的两个接口,它们都用于表示客户端发起的HTTP请求,但在功能和用法上有一些区别。ServletRequest接口:ServletRequest是JavaServletAPI中的基本接口,它定义了所有Servlet请求对象必须遵循的通用行为和功能。Http......