运行出现了空指针异常
@Autowired
注解出现的位置
AutoWired的代码
常用的就是写类上和方法上。
运行测试,刚才运行是一个空指针异常
也就是通过Autowired 这个accountDao这个对象不为空了。
注入成功原理
自动按照类型注入。IAccountDao去Spring的容器里面直接找的Value值
如果把实现类继承接口IAccountDao这里代码注释掉的话
再次运行就发现注不进去报错。
假设容器中两个实现类
复制一份改个名字
id后面也加上2
第一个实现的实现接口的代码 注释 放开
现在的容器中不止一个dao了,这样就面临着不止一个匹配值的情况、
错误:预期有唯一 一个类可以注入进来。但是发现了两个dao实现类
把变量名称后面加上1
变量名称改成2
多个,先按照类型圈定出来要匹配的对象,接下来使用变量名称作为bean的id,在圈定出来的这两个里面继续查找。如果有id一样的就注入成功。
没有一样的就报错。