阶段3 2.Spring_04.Spring的常用注解_5 自动按照类型注入

运行出现了空指针异常



@Autowired

注解出现的位置


AutoWired的代码

常用的就是写类上和方法上。
运行测试,刚才运行是一个空指针异常

也就是通过Autowired 这个accountDao这个对象不为空了。


注入成功原理
自动按照类型注入。IAccountDao去Spring的容器里面直接找的Value值

如果把实现类继承接口IAccountDao这里代码注释掉的话

再次运行就发现注不进去报错。



假设容器中两个实现类

复制一份改个名字


id后面也加上2

第一个实现的实现接口的代码 注释 放开

现在的容器中不止一个dao了,这样就面临着不止一个匹配值的情况、
错误:预期有唯一 一个类可以注入进来。但是发现了两个dao实现类

把变量名称后面加上1


变量名称改成2


多个,先按照类型圈定出来要匹配的对象,接下来使用变量名称作为bean的id,在圈定出来的这两个里面继续查找。如果有id一样的就注入成功。
没有一样的就报错。

阶段3 2.Spring_04.Spring的常用注解_5 自动按照类型注入的更多相关文章
- 阶段3 2.Spring_04.Spring的常用注解_3 用于创建的Component注解
@Component spring容器是一个Map结构,是由于key 和vlaue组成的 运行测试 无法运行 出错的原因↓ 第一部是解析配置文件.但是配置文件这里是空的.我们的bean里面什么对象都没 ...
- 阶段3 2.Spring_04.Spring的常用注解_2 常用IOC注解按照作用分类
注解配置和xml的配置要实现的功能都是一样的.都是要降低程序间的耦合,只不过配置的形式不一样 打包方式改成jar 加入spring 的依赖 复制之前的代码过来 复制到我们新建的工程里 resurces ...
- 阶段3 2.Spring_04.Spring的常用注解_7 改变作用范围以及和生命周期相关的注解
Scope 改成多例 PreDestory和PostConstruct PreDestory和PostConstruct这两个注解了解即可 增加两个方法,分别用注解 没有执行销毁方法. 如果你一个子类 ...
- 阶段3 2.Spring_04.Spring的常用注解_4 由Component衍生的注解
为什么要使用者三个注解 Controller:表现层 Service:业务层 Repository:持久层 在这里就是用Controller 运行也没问题 用Service Repository同样也 ...
- 阶段3 2.Spring_04.Spring的常用注解_6 用于注入数据的注解
@Qualifier 指定id为accountDao1 测试 如果把Autowired注释掉的话, 就会报空指针异常.就是没有注入进来 @Qualifier不能独立使用必须和Autowired配合使用 ...
- 阶段3 2.Spring_04.Spring的常用注解_1 今日课程内容介绍
- 阶段3 2.Spring_06.Spring的新注解_5 spring的新注解-PropertySource
数据库的链接 次数是写死的 新建配置文件 定义成员变量 value注解实现 与配置文件的key对应 PropertySource 要想让spring去读取这个配置文件 resource编译后都跑到了. ...
- 阶段3 3.SpringMVC·_03.SpringMVC常用注解_5 RequestHeader注解
- Spring Boot常用注解总结
Spring Boot常用注解总结 @RestController和@RequestMapping注解 @RestController注解,它继承自@Controller注解.4.0之前的版本,Spr ...
随机推荐
- deep_learning_Function_LSTM_dynamic_rnn
一. tf.nn.dynamic_rnn的输出 tf.nn.dynamic_rnn的输入参数如下 tf.nn.dynamic_rnn( cell, inputs, sequence_ ...
- iscsi原理
iscsi原理 一,[名词解释] SCSI:小型计算机系统接口,SCSI作为i输入/输出接口, FC:光纤通道 DAS:直连式存储,指将存储设备通过SCSI接口或光纤通道直接连到一台计算机上. NAS ...
- 009(1)-saltstack之salt-ssh的使用及配置管理LAMP状态的实现
1 salt-ssh的使用 1. 安装salt-ssh[root@slave1 .ssh]# yum install -y salt-ssh 2. 配置salt-ssh # Sample salt-s ...
- 第二章 Vue快速入门-- 27 字符串的padStart方法使用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- 一个python生成器的使用
def myegg(retlist): for i in retlist: rec = yield i mydict = [ {}, {}, {}, ] b = myegg(mydict) obj = ...
- 如何配置IIS使其支持APK/WGT文件的下载
1.打开Internet 信息服务(IIS)管理器: 2.选择需要配置的网站: 3.右侧功能界面双击进入“MIME类型”: 4.点击右侧“添加”按钮,在弹出窗口里文件扩展名输入:apk,MIME类型输 ...
- OpenCV笔记(6)(harris角点检测、背景建模)
一.Harris角点 如上图所示,红色框AB都是平面,蓝色框CD都是边缘,而绿色框EF就是角点. 平面:框往X或Y抽移动,变化都很小. 边缘:框沿X或Y轴移动,其中一个变化很小,而另外一个变化比较大. ...
- CSS定位——浮动定位
CSS定位机制Ⅱ——浮动定位 float属性:进行浮动定位 left,right clear属性:清除浮动 left,right,both ㈠ float属性 1.概述 ⑴div实现横向多 ...
- Java多线程和并发(一),进程与线程的区别
目录 1.进程和线程的由来 2.进程和线程的定义 3.进程和线程的区别 一.进程和线程的区别 1.进程和线程的由来 2.进程和线程的定义 进程是资源分配的最小单位,线程是CPU调度的最小单位 3.进程 ...
- 计算机网络(六),UDP报文段详解
目录 1.UDP作用 2.UDP报文段详解 六.UDP报文段详解 1.UDP作用 (1)面向非连接 (2)不维护连接状态,支持同时向多个客户端传送相同的消息 (3)报文段报头只有8个字节,格外开销较小 ...