@Autowired 与@Resource的异同点

本文为博客 VIP 文章,开通 VIP 后可阅读全文

开通 VIP

前言

最近写代码的时候,碰到一个小问题;
在这里插入图片描述
可以看到,Spring Boot不推荐使用@Autowired的方式进行属性注入。

我之前一直这样写,从来没觉得这有什么问题,看到这个报错,心里咯噔一下,然后忽然想,@Autowired 与@Resource有什么不同。

然后我发现,我竟然完全不记得了。

因此,写这篇笔记记录一下。

先解释一下,为什么Spring Boot不推荐使用@Autowired的方式进行属性注入。

  • @Autowired是spring定义的注解,与Spring框架强耦合,换成别的框架,可能不支持。
  • @Resource是JSR-250定义的注解,是Java标准,支持几乎所有java框架。

换言之,@Autowired能用的,@Resource也能用,@Autowired不能用的,@Resource还能用。

不过现在java程序员几乎等同于Spring程序员,说这个,似乎没有必要。

简单举例

LaymanController.java

@Controller
public class LaymanController {
   
   
    
    @Autowired
    public LaymanService laymanService;

    @GetMapping(value = "/sayHello")
    public void sayHello() {
   
   
         laymanService.sayHello();
    }
}

LaymanService

public 
【backtrader保姆级教学】投资组合回测 method1:探索投资组合的最有方案,使用蒙特卡洛模拟Markowitz模型。# 提取最小波动组合对应的权重, 并转换成Numpy数组。# 绘制收益-标准差的散图,并用颜色描绘夏普比率。# 在收益-风险散图中突出风险最小的。:param any_day: 任意日期。# 将该坐标显示在图中并保留四位小数。password = “替换密码”# 找到标准差最小数据的索引值。user = “替换账号”# 计算GMV投资组合收益。# 计算每项资产的夏普比率。# 设置无风险回报率为0。 阅读详情

相关推荐

ESP8266 进行HDLC解码,AX.25,APRS

/************************************************************** 函数名:aprs_wait_begin() 参 数:无 返回值:bool true=得到合法脉冲,false=未得到 说 明:等待第1个833us高脉冲,判断范围 730-930,其他忽略 ***************************************************************/ bool aprs_wait_begin(){ stati

蓝蓝的博客 1592

面试突击:@Autowired @Resource 有什么区别?你学会了吗?

而查找有分为两种实现:按名称(byName)查找或按类型(byType)查找,其中 @Autowired @Resource 都是既使用了名称查找又使用了类型查找,但二者进行查找的顺序却截然相反。@Autowired @Resource 来自同的“父类”,其中 @AutowiredSpring 定义的注解,而 @ResourceJava 定义的注解,它来自于 JSR-250(Java 250 规范提案)。虽然 IDEA 会出现报错信息,但程序是可以正常执行的。...

Candyz7的博客 3987

简述@Autowired@Resource区别(通俗易懂)

本文章对@Autowired@Resource两个注解通过典型案例结论详细简述了它们两个的区别,思路清晰明了!

黄团团的个人博客 6934

@Autowired 还是@Resource(对比+总结)

@AutoWire //当使用这个注入的时候上面的 UserServiceImpl 只需要这样写 @Service,这样就会自动找到UserService这个类型以及他的子类型。UserServiceImpl 实现了UserService,所以能够找到它。过这样有一个缺,就是当UserService实现类有两个以上的时候,这个时候会找哪一个呢,这就造成了冲突,所以要用@AutoWire注入...

qq_42848910的博客 8744

@Resource@Autowired异同

@Resource@Autowired异同

zzz的博客 159

Spring@Autowired@Resource注解异同

Autowired@Resource是在 Java 开发中用于实现依赖注入的注解。@AutowiredSpring 框架提供的注解,用于自动装配(自动注入)依赖。通过在需要注入依赖的字段、构造方法或者方法上使用@Autowired注解,Spring 容器会自动寻找匹配类型的 Bean,并将其注入到被注解的位置。如果存在多个满足条件的 Bean,则可以使用@Qualifier注解指定具体的 Bean。@ResourceJavaEE 规范提供的注解,也可用于依赖注入。

蒾酒的博客 2139

@Autowired@Resource两个注解的异同

在之前分别写了关于@Autowired@Resource注解的两篇博文,这里我们总结一下两个注解的异同

好记性不如烂笔头 419

总结@Autowired @Resource,对比异同

@Resource的作用相当于@Autowired,只@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了。@Resource有两个属性是比较重要的,分是nametype,Spring@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用t

alex的专栏 6770

@Autowired注解@Resource注解装配bean异同

Spring系列框架中经常使用到@Autowired@Resource进行装配。 下面我来介绍一下两者的异同, 相同@Resource的作用相当于@Autowired,均可标注在字段或属性的setter方法上。 : (1)提供方:@Autowired是由Spring提供;@Resource是由J2EE提供,需要JDK1.6及以上。 (2)注入方式:@Autowired只按照byType 注入;@Resource默认按byName自动注入,也提供按照byType 注入; (3)属性:@Aut

weixin_39672065的博客 168

@Autowired、@Inject@Resource异同

1.为何要讲这篇呢? 其实这个非常基础,但我发现有些地方很多人熟悉,比如:@Autowired@Resource区别无非就是后者是jsr规约,前者是按类型装配,后者是按名称装配仅此而已。 2.基本用法 1.@Autowired 引自:org.springframework.bean.factory 标准:无 spring:通过AutowiredAnnotationBeanPostPr...

布道 1677

@Autowired @Resource注解异同(简单说明)

@Autowired @Resource注解异同 共同 1.@Resource@Autowired都可以作为注入属性的修饰,在接口仅有单一实现类时,两个注解的修饰效果相同,可以互相替换,影响使用。 2.@Autowired@Resource都可以写在字段或写在setter方法上。 区别 1.@Autowired按byType自动注入,而@Resource默认按 byName自动注入。 2.@Autowired是根据类型进行自动装配的。当Spring上下文中存在止一个UserDao类型的bean

qq_43133294的博客 265

千字详解@Autowired@Resource (附代码示例)

@Autowired:这个注解是由Spring框架提供的,属于org.springframework.beans.factory.annotation.Autowired包。它是Spring框架的一部分,用于实现依赖注入的功能。Spring框架从2.5版本开始对依赖注入的方式进行了改进,使得@Autowired成为了一个更加便捷强大的注解。

无限进步 6927

@Autowired @Resource区别

@Autowired @Resource 注解的区别

qq_41956014的博客 9593

@Autowired@Resource区别

Spring@Autowired注解@Resource注解的区别 相同@Resource的作用相当于@Autowired,均可标注在字段或属性的setter方法上。 : (1)提供方:@Autowired是由org.springframework.beans.factory.annotation.Autowired提供,换句话说就是由Spring提供;@R

Jerry的一亩三分地 494

Spring注解驱动开发第21讲——你还会使用@Resource注解@Inject注解吗?那你就out了!!

写在前面 在前一讲中,我介绍了如何使用@Autowired、@Qualifier以及@Primary这三个注解自动装配Spring组件。那除了这三个注解以外,还有没有其他的注解可以自动装配组件呢?那必须有啊!今天,我们就一起来说说@Resource注解@Inject注解。 简单介绍一下@Resource@Inject这俩注解 @Resource注解 @Resource注解是Java规范里面的,也可以说它是JSR-250规范里面定义的一个注解。该注解默认按照名称进行装配,名称可以通过name属性进行指定,

李阿昀的博客 3378

@Resource@Autowired区别

spring2.5提供了基于注解(Annotation-based)的配置,我们可以通过注解来完成bean的注入。在Java代码中可以使用 @Resource或者@Autowired注解方式来经行注入。此处浅析下@Resource@Autowired二者的异同。同: @Autowired@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。 (两者如果

Linn 5415

Spring自动注入之AutowiredResource

Spring@Autowired注解@Resource注解的异同。 相同@Resource的作用相当于@Autowired,均可标注在字段或属性的setter方法上。 : 1、提供方:@Autowired是由org.springframework.beans.factory.annotation.Autowired提供,换句话说就是由Spring提供;@Resource是由javax.annotation.Resource提供,即J2EE提供,需要JDK1.6及以上。 2、 注

jsq6681993的博客 464

Spring注解驱动开发】你还会使用@Resource@Inject注解?那你就out了!!

Inject注解@Inject注解(JSR330)默认是根据参数名去寻找bean注入,支持spring的@Primary注解优先注入,@Inject注解可以增加@Named注解指定注入的bean。@Inject注解的源码如下所示。1项目案例。

2401_84413396的博客 702

UG.rar_UG-6028GDEAF01_seps525

优景彩屏资料UG-6028GDEAF01开发文档SEPS525,很齐全

上一篇: 【快递100】订阅地图轨迹推送服务并接收推送
下一篇: MySQL常用的时间函数,聚合函数,字符串函数,判断函数
layman  .
博客等级 码龄9年 1万+粉丝 · 321原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值