阶段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 ...
随机推荐
- linux yum 安装及卸载
在Centos中yum安装和卸载软件的使用方法安装方法安装一个软件时yum -y install httpd安装多个相类似的软件时yum -y install httpd*安装多个非类似软件时yum ...
- nvidia-docker安装
如果之前安装过docker1.0版本,需要先删掉该版本和之前创建的容器 docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 ...
- magento购物车添加减少数量 实时更新购物车
magento实时更新购物车商品数量 <td> <button onclick="addQtyone();" type="submit"> ...
- 阿里云-docker安装mysql
1.检查内核版本,必须是3.10及以上 uname ‐r 2.安装docker yum install docker 3.输入y确认安装 4.启动docker:service docker start ...
- C#基础再学习
本次观看C#中级教程视频进行对C#一些基础的再度学习,加深印象. 1.对于错误和异常. 错误可能是语法错误也可能是逻辑错误.可以通过断点进行调试. 断点快捷键F9. 异常,通过try catch捕获, ...
- mysql事务,视图,触发器,存储过程与备份
.事务 通俗的说,事务指一组操作,要么都执行成功,要么都执行失败 思考: 我去银行给朋友汇款, 我卡上有1000元, 朋友卡上1000元, 我给朋友转账100元(无手续费), 如果,我的钱刚扣,而朋友 ...
- 【BZOJ2752】【Luogu P2221】 [HAOI2012]高速公路
不是很难的一个题目.正确思路是统计每一条边被经过的次数,但我最初由于习惯直接先上了一个前缀和再推的式子,导致极其麻烦难以写对而且会爆\(longlong\). 推导过程请看这里. #include & ...
- 判断当前环境是ios还是安卓
/** * @name 判断iOS */ export const isiOS = ()=>{ let u = navigator.userAgent; let iOs = !!u.match( ...
- win10 + cuda10.0 + pytorch1.2 + CenterNet 环境搭建
心血来潮,想跑个 CenterNet 检测瞅瞅...麻蛋,有非官方层 一.下载好 CenterNet 源码 https://github.com/xingyizhou/CenterNet 二.注意你需 ...
- jQuery_val()操作
完成对输入或者选择内容的获取,以及更改 代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8 ...