阶段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 ...
随机推荐
- 四,k8s集群资源清单定义入门
目录 资源对象 创建资源的方法 清单帮助命令 创建测试清单 资源的三种创建方式 资源对象 workload:Pod, ReplicaSet, Deployment, StatefulSet, Daem ...
- vm安装ubantu的详细过程(转载)
这里转载一个非常实用的vm虚拟机安装linux系统的文章有需要的可以看下面链接: https://blog.csdn.net/u013142781/article/details/50529030
- tornada-模板
tornado模板 1.配置模板路径 (project/config.py) # coding=utf-8 import os BASE_DIRS = os.path.dirname(__file__ ...
- 心态炸了,我再写一个4.1.0版本的SND实例
maven依赖 <!-- Tests --><dependency> <groupId>org.springframework</groupId> &l ...
- JavaScript中数组元素删除的七大方法汇总
原文链接:https://blog.csdn.net/u010323023/article/details/52700770 在JavaScript中,除了Object之外,Array类型恐怕就是最常 ...
- C#的Winform多语言实现(resx文件)
1. 简体中文 2. 繁体中文 3. 英文 下面子丰介绍一下实现的过程: 1. 为每个窗口创建相应语言的resx文件.子丰以英文为例,右键->添加->新建项->资源文件,文件名为窗口 ...
- 编程语言类别;运行Python程序的方式;变量和常量;Python程序的垃圾回收机制;
目录 编程语言分类 运行Python程序的两种方式 1.交互式 变量与常量 1.变量 2.常量 3.小整数池 垃圾回收机制 编程语言分类 编程语言分为: 1.机器语言:直接用二进制的0和1和计算机(C ...
- python的基础语法-部分Ⅱ
Python 保留字符 下面的列表显示了在Python中的保留字.这些保留字不能用作常数或变数,或任何其他标识符名称. 所有 Python 的关键字只包含小写字母. 行和缩进 学习 Python 与其 ...
- Confluence 6 插入一个文件到你的页面
文件可以在页面中以缩略图或者链接的方式显示.我们有多种办法能够上传文件,请参考 Upload Files 页面. 你可以控制文件如何在你的页面中显示.文件在页面中显示的可用方法与你的文件类型有关. 插 ...
- UVA 11178 Morley's Theorem 计算几何模板
题意:训练指南259页 #include <iostream> #include <cstdio> #include <cstring> #include < ...