Springboot系列


前言

@Autowired使用剖析,与@Resource的区别


目录

Springboot系列

前言

一、@Autowired

二、@Autowired和@Resource的区别

1.相同点:

2.区别:

总结:

一、@Autowired

Spring IoC容器通过该注解将容器的实现类注入到实例中。

二、@Autowired和@Resource的区别

1.相同点:

两者都是Spring在注入对象时使用的注解。

2.区别:

(1)@Resource注解时JDK自带的,@Autowired注解是Spring框架中是实现的。

(2)默认的装配方式不一样,@Resource默认按照名称来注入;@Autowired默认按照类型来注入。

总结:


1.@Autowired

当一个service接口有两个实现类时,使用@Autowired需要注意的是:属性名需要和你的实现类的类名一样,但需要使用驼峰命名的形式(小写类名首字母)。因为它的规则是:首先它会根据类型(type)找到对应的 Bean, 如果对应类型的 Bean 不是唯一的,那么它会根据其属性名称和 Bean 的名称进行匹配。如果匹配得上,就会使用该Bean :如果还无法匹配,就会抛出异常。
        虽然说一个interface下面有多个实现类时,使用实现类的类名首字母小写其余不变的方式可以消除歧义,但是,还有更加专业的写法,就是使用@Qualifier("属性名")和@Autowired配合使用即可。

@Autowired@Qualifier("dog")
private Animal animal;

也可以指定一个默认的Bean,使用的是 @Primary,加在实现类上面,表示优先级比没有加@Primary注解的实现类的优先级高,但是如果多个实现类都使用了@Primary,那么同样会造成起义,因此,使用@Primary注解有一种初始化时,指定默认值的感觉。
        另外,@Autowired还有一个特点:在默认情况下,@Autowired注解要求一定要找到对应的Bean,什么意思呢?如果找不到实现类,就会抛出异常。为了允许找不到的情况合理存在,需要设置@Autowired的required = false,这样就不会抛出异常了,虽然说可以正常编译,但是调用的时候会产生空指针异常。

@Autowired(required = false)

关于@Autowired相关推荐

  1. Spring中@Autowired注解、@Resource注解的区别

    Spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource.@PostConstruct以及@PreDestroy. @Resour ...

  2. Spring注解@Component、@Repository、@Service、@Controller,@Autowired、@Resource用法

    一.Spring定义bean,@Component.@Repository.@Service 和 @Controller Spring 2.5 中除了提供 @Component 注释外,还定义了几个拥 ...

  3. 使用Spring的@Autowired 实现DAO, Service, Controller三层的注入(转)

    简述: 结合Spring和Hibernate进行开发 使用@Autowired实现依赖注入, 实现一个学生注册的功能,做一个技术原型 从DAO(Repository) -> Service -& ...

  4. autowired java_Java 基础之Autowired 是否是自动注入

    Java 基础之Autowired 是否是自动注入 相信很多人对Autowired 注解理解不深入,或者是认为此注解就是spring的自动注入.相信看完本篇文章,你会有更加不一样的理解. 首先我们先看 ...

  5. 综合技术 --@Autowired和@Resource

    2019独角兽企业重金招聘Python工程师标准>>> 1.@Autowired和@Resource 的作用一样,都是自动注入 2.@Autowired是按照byType自动注入,而 ...

  6. intellij idea中去除@Autowired注入对象的红色波浪线提示

    idea中通过@Autowired注入的对象一直有下划线提示. 解决:改变@Autowired的检查级别即可. 快捷键:Ctrl+Alt+s,进入idea设置界面,输入inspections检索 转载 ...

  7. @autowired注解_品Spring:对@Autowired和@Value注解的处理方法(文末附spring系列资源合集)...

    作者:编程新说李新杰 出自:微信公众号"编程新说" 原文:品Spring:对@Autowired和@Value注解的处理方法 在Spring中能够完成依赖注入的注解有JavaSE提 ...

  8. 依赖注入@Autowired@Primary@Quelifier使用

    @Autowired 注入声明的SpringBean对象,根据一定的规则首先按照注入的类型去查找,如果没有找到安装注入的名称去匹配你要注入的属性名称,如果都没有找到启动项目时抛出异常,@Autowir ...

  9. Spring @Autowired和@Resource

    @Autowired和@Resource 共同点:都是装配bean的注解 不同点: @Autowired 提供者:@Autowired是Spring提供的注解 装配方式:ByType(通过类的类型)装 ...

  10. Spring5:@Autowired注解、@Resource注解和@Service注解

    转载:http://www.cnblogs.com/xrq730/p/5313412.html 什么是注解 传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有 ...

最新文章

  1. 2018 区块链技术及应用峰会(BTA)·中国全日程新鲜出炉,更多精彩议题看不停
  2. php 防止倒链,PHP防止图片倒链
  3. keil debug如何在watch直接修改变量值_printf系列教程03_SWO打印输出配置,基于Keil『Debug(printf)Viewer』...
  4. Docker容器的文件系统管理
  5. LinkedHashSet类
  6. C++算法学习(力扣:面试题 04.04 检查平衡性)
  7. linux普通用户配置自己的python环境
  8. js判断设备是PC端还是移动端
  9. android 5.0判断服务是否开启中,android5.0之后版本服务出现的显示问题解决方案
  10. linux查看当前账号权限,Linux账号权限管理
  11. 丝路传说架设服务器维护,《丝路传说》一键整合服务端+GM工具+视频架设教程...
  12. 基于鸿蒙系统的APP测试技术,快来入坑
  13. windows10如何修改hosts文件,微软官方回复,博主亲测有效
  14. 【ArcGIS】连接到数据库失败,临时文件I/O错误--可能$SDEHOME/temp已满
  15. 毕业论文的前言写什么?
  16. 当前支付有效提高线下支付场景效率?
  17. PCIe扫盲——弹性缓存(Elastic Buffer/ CTC Buffer)
  18. 74LS139改3―8线译码器_数字译码器
  19. C语言文件读写,相对路径,基本操作,秒懂
  20. 青村茶舍||“清明寄哀思”乡风建设活动

热门文章

  1. 批量提取图片信息[大小、宽高尺寸和分辨率]
  2. 乖离性暗机器人_乖离性百万亚瑟王暗机器人怎么打 暗机器人打法攻略
  3. ubuntu重启和关机命令
  4. Flash CS3动画设计150例
  5. resultMap结果映射
  6. 外贸独立站内部优化,提升转化率
  7. centos桥接模式配置
  8. JavaScript数据类型-基本数据类型
  9. Linux个性化命令行登陆提示文字
  10. vs code因系统更新重启被关闭,找回未保存代码文件