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.一般也不会用简单类型,解决方法自己寻找合适的,这里没有最好的