运行出现了空指针异常


@Autowired


注解出现的位置


AutoWired的代码

常用的就是写类上和方法上。

运行测试,刚才运行是一个空指针异常

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

注入成功原理

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

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

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

假设容器中两个实现类


复制一份改个名字


id后面也加上2

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

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

把变量名称后面加上1


变量名称改成2


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

阶段3 2.Spring_04.Spring的常用注解_5 自动按照类型注入的更多相关文章

  1. 阶段3 2.Spring_04.Spring的常用注解_3 用于创建的Component注解

    @Component spring容器是一个Map结构,是由于key 和vlaue组成的 运行测试 无法运行 出错的原因↓ 第一部是解析配置文件.但是配置文件这里是空的.我们的bean里面什么对象都没 ...

  2. 阶段3 2.Spring_04.Spring的常用注解_2 常用IOC注解按照作用分类

    注解配置和xml的配置要实现的功能都是一样的.都是要降低程序间的耦合,只不过配置的形式不一样 打包方式改成jar 加入spring 的依赖 复制之前的代码过来 复制到我们新建的工程里 resurces ...

  3. 阶段3 2.Spring_04.Spring的常用注解_7 改变作用范围以及和生命周期相关的注解

    Scope 改成多例 PreDestory和PostConstruct PreDestory和PostConstruct这两个注解了解即可 增加两个方法,分别用注解 没有执行销毁方法. 如果你一个子类 ...

  4. 阶段3 2.Spring_04.Spring的常用注解_4 由Component衍生的注解

    为什么要使用者三个注解 Controller:表现层 Service:业务层 Repository:持久层 在这里就是用Controller 运行也没问题 用Service Repository同样也 ...

  5. 阶段3 2.Spring_04.Spring的常用注解_6 用于注入数据的注解

    @Qualifier 指定id为accountDao1 测试 如果把Autowired注释掉的话, 就会报空指针异常.就是没有注入进来 @Qualifier不能独立使用必须和Autowired配合使用 ...

  6. 阶段3 2.Spring_04.Spring的常用注解_1 今日课程内容介绍

  7. 阶段3 2.Spring_06.Spring的新注解_5 spring的新注解-PropertySource

    数据库的链接 次数是写死的 新建配置文件 定义成员变量 value注解实现 与配置文件的key对应 PropertySource 要想让spring去读取这个配置文件 resource编译后都跑到了. ...

  8. 阶段3 3.SpringMVC·_03.SpringMVC常用注解_5 RequestHeader注解

  9. Spring Boot常用注解总结

    Spring Boot常用注解总结 @RestController和@RequestMapping注解 @RestController注解,它继承自@Controller注解.4.0之前的版本,Spr ...

随机推荐

  1. wireshark 抓usb包

    https://www.freebuf.com/articles/system/96216.html https://blog.csdn.net/shiailan/article/details/97 ...

  2. supdf

    https://github.com/sumatrapdfreader/sumatrapdf/tree/master/src c++  java

  3. Automatches

    import os def combine(ArrayList,count): ArrayList=list(ArrayList) newArrayList=[] for i in range(0,A ...

  4. nicstat命令安装与分析

    nicstat安装包下载与安装: wget https://downloads.sourceforge.net/project/nicstat/nicstat-1.95.tar.gz tar -zxv ...

  5. oozie 启动过程中--- Existing PID file found during start. Removing/clearing stale PID file.

    如果oozie使用kill -9 暴力杀死了tomcat,再启动的时候,会出问题,需要删除tomcat的pid文件 彻底停止oozie的tomcat的进程,然后删除pid文件 rm -rf  /exp ...

  6. luogu2014 选课[树形背包][优化成$O(n^2)$的方法]

    https://www.luogu.org/problemnew/show/P2014 树形背包的裸题..当版子好了. $f[i][j][k]$表示子树$i$选前$j$个孩子,共$k$个后代节点时的最 ...

  7. keystonejs实战之页头页脚

    前两篇介绍了入门相关知识及对keystonejs整体可用性评估,这篇介绍下开始实际运用中的页头页脚部分,因为马上项目忙了,这个先匆匆的作个收尾. 不管是用WordPress还是其他CMS系统,应用最宽 ...

  8. 前端杂谈: Attribute VS Property

    前端杂谈: Attribute VS Property 第一个问题: 什么是 attribute & 什么是 property ? attribute 是我们在 html 代码中经常看到的键值 ...

  9. 1223 drf引入以及restful规范

    目录 前后台的数据交互 drf 知识点概括 1. 框架安装 2. 接口 2.1 什么是接口 2.2 接口文档 2.3 接口工具的使用 2.4 restful接口规范 debug的使用 前后台的数据交互 ...

  10. 简单加密 DEncrypt

    /// <summary> /// Encrypt 的摘要说明. /// </summary> public class DEncrypt { /// <summary& ...