IOC深入理解
我们先通过几个问题来加深一下对IOC的理解
- (1)Spring是使用IOC容器来管理bean对象的,我们主要管理什么?
主要管理项目中所使用到的类对象,比如(Service层对像和Dao层对象)
- (2)如何将被管理的对象告知IOC容器?
使用配置文件
- (3)被管理的对象交给IOC容器,要想从容器中获取对象,我们如何获取到IOC容器?
Spring框架提供相应的接口
- (4)IOC容器得到后,如何从容器中获取bean?
调用Spring框架提供对应接口中的方法
- (5)使用Spring导入哪些坐标?
用别人的东西,就需要在pom.xml添加对应的依赖
IOC示例:
接下来我们完整的来熟悉一下流程:
1、首先我们需要导入Spring依赖,使其变成Spring项目
2、创建配置文件并配置Bean
3、主程序中便可引用
我们之前说过充分解耦的结果是使业务层中不在保留数据层对象,但是很明显,我们的代码依然在service层中new了dao层对象如下图所示,下面我们就通过DI解决完成完全解耦。
DI深入理解
要想实现依赖注入,必须要基于IOC管理Bean
-(1)Service中使用new形式创建的Dao对象是否保留?
需要删除掉,最终要使用IOC容器中的bean对象
- (2)Service中需要的Dao对象如何进入到Service中?
在Service中提供方法,让Spring的IOC容器可以通过该方法传入bean对象
- (4)Service与Dao间的关系如何描述?
同样使用配置文件
DI示例
1、删除service层中new的dao层对象并在service层中提供相应的set方法
这一步相当于删掉业务层的dao对象并告诉service层需要的dao对象该如何获取(通过set方法),结束时,我们还不知道二者关系,需要利用配置文件建立关系
2、修改配置文件建立service层与dao层的关系