9.@AutoWired

这个注解的英文直译是“自动装配”,“自动注入”

它就像一根水管一样,两端接上水桶,然后就可以把一个桶里面的水自动注入到另一个桶中。

这两端的桶,可以是 类成员变量/方法/构造函数

中间流的水,可以是 数组/集合/Map/父类属性

一般使用场景:

@Servicepublic class UserService {@Autowired//定义一个变量来接收注入过来的类private UserRepository userRepository;public void save(){//然后就可以通过点来调用这个类里面的方法userRepository.save();}}

注意事项:

@Autowired是ByType的,在使用时首先在容器中查询对应类型的bean

如果查询结果刚好为一个,就将该bean装配给@Autowired指定的数据

如果查询的结果不止一个,那么@Autowired会根据名称来查找(首字母小写)。

如果查询的结果为空,那么会抛出异常。解决方法是,@AutoWired(required=false)

@AutoWired加在变量/方法上面与加在构造器上面有什么区别?

答:加在构造器上面更保险一些。

因为Java变量的初始化顺序为:
静态变量或静态语句块–>实例变量或初始化语句块–>构造方法–>@Autowired

如果在加在变量/方法上面,那么下面这段代码就会报错

@Autowired
private User user;
private String school;public UserAccountServiceImpl(){this.school = user.getSchool();
}

因为先会执行构造方法,而这个时候还没有注入,所以get不出来,会报空指针错误。

相反,如果加在构造器上面就不会报错。如下:

private User user;
private String school;@Autowired
public UserAccountServiceImpl(User user){this.user = user;this.school = user.getSchool();
}

10.Qualifer

这个注解是用来辅助@AutoWired注解来使用的。
用于当@AutoWired在注入父类属性时有两个或以上实现类时,指定要用哪个。

Spring中常用注解及其作用(二)相关推荐

  1. Spring中常用注解及其作用

    1.@Component 它是这些注解里面最普通的一个注解,一般用于把普通pojo实例化到spring容器中. @Controller和@Service和@Repository是它的特殊情况,当一个类 ...

  2. Spring中常用注解及作用

    1.@Component 类注解,设置该类为spring管理的bean,属性可以定义bean的id,添加在类定义的上方,@Component注解不可以添加在接口上,因为接口无法创建对象. eg: 步骤 ...

  3. 声明式事务、Spring 中常用注解、Ajax

    五. 声明式事务 编程式事务: 1.1 由程序员编程事务控制代码. 1.2 OpenSessionInView 编程式事务 声明式事务: 先引入依赖 <dependency><gro ...

  4. Spring中@AliasFor注解的作用及原理

    本文基于Springboot 2.1.6.RELEASE 版本分析. 关于@AliasFor注解,曾提过的一个issue Explicit attribute overrides configured ...

  5. Spring中常用注解的介绍

    spring中使用注解时配置文件的写法: <?xml version="1.0" encoding="UTF-8"?> <span style ...

  6. spring boot常用注解的作用

    Controller层注解 @Controller和@RestController的区别 @RestController注解相当于@ResponseBody + @Controller合在一起的作用 ...

  7. Spring中@Import注解的作用和使用

    查看Import注解源码 作用: 1.声明一个bean 2. 导入@Configuration注解的配置类 3.导入ImportSelector的实现类 4.导入ImportBeanDefinitio ...

  8. spring 中常用注解

    1. @Resource @Resource(name="userDaoImpl") private UserDao userDao1; 这是定义在字段上的Annotation,是 ...

  9. spring的各种注解的作用-持续更新中

    所谓的注入到底啥意思? 其实就是spring内部的import 和python里面的import numpy差不多的效果. 依赖注入: 扯白了就是你自己写的对象,需要被spring兼容. 先说说所谓的 ...

  10. java常用注解及功能_SpringBoot 中常用注解及各种注解作用

    本篇文章将介绍几种SpringBoot 中常用注解 其中,各注解的作用为: @PathVaribale 获取url中的数据 @RequestParam 获取请求参数的值 @GetMapping 组合注 ...

最新文章

  1. 速度超Mask RCNN四倍,仅在单个GPU训练的实时实例分割算法 | 技术头条
  2. 在Java 7里如何对文件进行操作
  3. 渤海发现大油田,证券会提示风险,微博回应流量造假,刘国梁制定史上最严奖惩体系,这就是今天的大新闻。...
  4. 解决我的windows不是正版的方法?
  5. 计算机科学与技术学了会秃头吗,计算机科学与技术vs 信息与计算科学,秃头专业了解一下?...
  6. python元组是有序还是无序_python-03 元组和字典
  7. 数据库查询优化-添加索引
  8. 安卓版本客户端2.1
  9. [嵌入式linux]PCIe 热拔插(rescan)
  10. 触摸屏控制变频器程序 触摸屏控制变频器程序
  11. 基于Ubuntu 18.04打造嵌入式arm开发环境
  12. AdamW优化器简单理解
  13. 影音视频播放中常见八问题
  14. latex 字母上面加符号
  15. html中radio设置默认值
  16. 免费送!!!CSDN 会员月卡!
  17. 2d绘制 c# dx_如何在C#中绘制2D等高线图?
  18. C++中空类占一字节原因详解
  19. 一位真正的好人却永远走了
  20. 二年级的女儿用计算机算算术,二年级数学 | 关于计算,学而思老师这样说...

热门文章

  1. Spark面试题、答案
  2. vue后端模板、vue登录界面、注册界面(带短信验证码)模板
  3. 访谈完100个年入百万的自媒体人后,我总结了出了他们的共性
  4. 用AlexNet训练MSTAR数据集
  5. 性能测试——抗攻击-hyenae-ddos攻击
  6. 研究生期间论文发表经验总结
  7. 南通大学java期末_【Java爬虫】爬取南通大学教务处成绩
  8. 微软亚洲研究院院长换帅!复旦校友周礼栋博士升任新院长
  9. 注释//TODO的作用
  10. 第一节 细胞是生命活动的基本单位