Spring中常用注解及其作用(二)
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中常用注解及其作用(二)相关推荐
- Spring中常用注解及其作用
1.@Component 它是这些注解里面最普通的一个注解,一般用于把普通pojo实例化到spring容器中. @Controller和@Service和@Repository是它的特殊情况,当一个类 ...
- Spring中常用注解及作用
1.@Component 类注解,设置该类为spring管理的bean,属性可以定义bean的id,添加在类定义的上方,@Component注解不可以添加在接口上,因为接口无法创建对象. eg: 步骤 ...
- 声明式事务、Spring 中常用注解、Ajax
五. 声明式事务 编程式事务: 1.1 由程序员编程事务控制代码. 1.2 OpenSessionInView 编程式事务 声明式事务: 先引入依赖 <dependency><gro ...
- Spring中@AliasFor注解的作用及原理
本文基于Springboot 2.1.6.RELEASE 版本分析. 关于@AliasFor注解,曾提过的一个issue Explicit attribute overrides configured ...
- Spring中常用注解的介绍
spring中使用注解时配置文件的写法: <?xml version="1.0" encoding="UTF-8"?> <span style ...
- spring boot常用注解的作用
Controller层注解 @Controller和@RestController的区别 @RestController注解相当于@ResponseBody + @Controller合在一起的作用 ...
- Spring中@Import注解的作用和使用
查看Import注解源码 作用: 1.声明一个bean 2. 导入@Configuration注解的配置类 3.导入ImportSelector的实现类 4.导入ImportBeanDefinitio ...
- spring 中常用注解
1. @Resource @Resource(name="userDaoImpl") private UserDao userDao1; 这是定义在字段上的Annotation,是 ...
- spring的各种注解的作用-持续更新中
所谓的注入到底啥意思? 其实就是spring内部的import 和python里面的import numpy差不多的效果. 依赖注入: 扯白了就是你自己写的对象,需要被spring兼容. 先说说所谓的 ...
- java常用注解及功能_SpringBoot 中常用注解及各种注解作用
本篇文章将介绍几种SpringBoot 中常用注解 其中,各注解的作用为: @PathVaribale 获取url中的数据 @RequestParam 获取请求参数的值 @GetMapping 组合注 ...
最新文章
- 速度超Mask RCNN四倍,仅在单个GPU训练的实时实例分割算法 | 技术头条
- 在Java 7里如何对文件进行操作
- 渤海发现大油田,证券会提示风险,微博回应流量造假,刘国梁制定史上最严奖惩体系,这就是今天的大新闻。...
- 解决我的windows不是正版的方法?
- 计算机科学与技术学了会秃头吗,计算机科学与技术vs 信息与计算科学,秃头专业了解一下?...
- python元组是有序还是无序_python-03 元组和字典
- 数据库查询优化-添加索引
- 安卓版本客户端2.1
- [嵌入式linux]PCIe 热拔插(rescan)
- 触摸屏控制变频器程序 触摸屏控制变频器程序
- 基于Ubuntu 18.04打造嵌入式arm开发环境
- AdamW优化器简单理解
- 影音视频播放中常见八问题
- latex 字母上面加符号
- html中radio设置默认值
- 免费送!!!CSDN 会员月卡!
- 2d绘制 c# dx_如何在C#中绘制2D等高线图?
- C++中空类占一字节原因详解
- 一位真正的好人却永远走了
- 二年级的女儿用计算机算算术,二年级数学 | 关于计算,学而思老师这样说...