【 从零到精通Spring学习笔记(二)依赖注入】

70 阅读3分钟

Spring笔记(二)

2.依赖注入

**作者是根据黑马课程来学习的,所以作者会引用了黑马课程中的知识**

2.1 setter注入

2.1.1 简单类型注入

在实现类 (bean) Service中要使用 int类型数据(由于int是java中的基础类不需要创建bean导入IOC容器中) ,可以直接在配置类中定义值

那么这时候就有疑问了?int类型的数据我直接给一个固定的值不就行了,为什么我还有去配置类中定义值,,不麻烦吗?

好处:1.如果你的各种类都需要这个值,那么我不需要去各个类中定义了,直接拿 2.我们想想假如这个值很重要,你在类里定义,以后是不是不方便寻找 (不过一般用不到) 3.其实最终实现的就是高聚合低耦合

怎么写:1.在一个类Service中使用这个bean(int),那么该类是不是也需要是一个bean啊 2. 你都在类Service中使用了这个bean,那你以后用是不是用这个类Service呀,通过Service间接来调用Dao

写法:在Service类, 定义private int num; public void setNum(int num){ this.num = num;}        (例图没有对应仅供参考)

​编辑

​编辑

2.1.2 引用类型注入

在实现类 (bean) Service中要使用 引用类型Dao数据 , 那么Dao是不是也应该为bean

写:

1.先在配置类中配置Dao(bean)

​编辑

2.配置Service

​编辑

3.Service类中定义Dao

​编辑

2.1.3区别

1.基本类型给值用value ,引用类型给值用ref

2.基本类型不需要在配置bean,引用类型需要配置bean

2.2 构造器注入

2.2.1 简单类型注入

与setter差不多

​编辑

2.2.2 引用类型注入

​编辑

2.2.3 简单类型的一些问题

1.如果参数名字相同怎么办,上面就是按名称找的

解决方法:将name标签换成type,按类型找

​编辑

2.那么如果类型相同呢

解决方法:将type换成index,按索引找

​编辑

索引从0开始,对应方法中的形参

3.一般也不会用简单类型,解决方法自己寻找合适的,这里没有最好的