Autowired和Resource关键字的区别?

本文比较了Spring框架中的@Autowired和@Resource两种常用的依赖注入注解,包括它们的注入方式、匹配规则、兼容性以及适用场景。两者可根据需求灵活选择。
摘要由CSDN通过智能技术生成

@Autowired@Resource 是在Spring框架中用于进行依赖注入的两个常用注解,它们有一些区别和适用场景。

1. @Autowired

  • 注入方式: @Autowired 注解可以用在字段、构造方法、Setter方法上,用于实现自动装配。Spring会根据类型(by type)进行自动匹配。

  • 按照类型注入: 当有多个类型匹配时,Spring会根据类型选择合适的bean进行注入。如果存在多个相同类型的bean,可以使用 @Qualifier 注解指定要注入的bean的名称

 

@Autowired
private SomeBean someBean;

2. @Resource

  • 注入方式: @Resource 注解可以用在字段、构造方法、Setter方法上,也可以用在方法上。它默认按照名称(by name)进行自动装配,但也支持按照类型进行匹配。

  • 按照名称注入: 如果指定了 name 属性,则按照指定的名称进行匹配。如果没有指定 name 属性,则默认按照字段名或方法名进行匹配。

@Resource(name = "someBean")
private SomeBean someBean;

 

区别总结:

  1. 注入方式:

    • @Autowired 默认按照类型注入,支持字段、构造方法、Setter方法。
    • @Resource 默认按照名称注入,支持字段、构造方法、Setter方法、方法。
  2. 匹配方式:

    • @Autowired 根据类型进行匹配,当有多个类型匹配时,可以使用 @Qualifier 进行进一步指定。
    • @Resource 默认按照名称进行匹配,可以通过 name 属性指定名称,也可以按照类型进行匹配。
  3. 兼容性:

    • @Autowired 是Spring提供的注解,支持在Spring应用中使用。
    • @Resource 是Java EE的规范,也可以在Spring应用中使用,但不同于 @Autowired,它并不是Spring的特有注解。

在实际使用中,选择使用哪个注解取决于具体的需求和习惯,两者在很多场景下可以互换使用。

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭梓航

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值