@Autowired与@Resource的区别

本文详细比较了Spring框架中的@Autowired注解与Java标准库中的@Resource注解的区别及使用场景。探讨了它们如何实现依赖注入,并指出@Autowired侧重于类型匹配而@Resource首先尝试按名称匹配的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@Autowired:

@Autowired注解的全限定类名为
org.springframework.beans.factory.annotation.Autowired
由此可以看出Autowired属于spring框架,是由spring提供的注解,
此注解的作用是从容器中自动注入相对应的数据
注:Autowired注入数据默认寻找同一类型的数据注入,如果容器中有多个相同类型的数据时,可以把要注入的数据的变量名字取为容器中相对应数据相同的名字。这样的话,就算有多个同类型的数据也可以注入成功。
和@Qualifier 并不一样,有本质的区别,@Qualifier 直接按照名称注入数据。

@Resource:

@Resource注解的全限定类名为javax.annotation.Resource
由此可以看出Resource属于java,由java提供,
此注解作用也是注入数据,但是和@Autowired的区别是:
Resource先判断容器中是否有相同名字的数据,如果没有再找相同类型的数据,如果还是没有则报错。

在@Autowired的后面添加required=false属性 。那么当找不到数据时,会赋予null值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值