对于IOC的一些简单理解
例如 :
接口
接口实现类
业务接口
业务接口实现类
未使用IOC时候代码实测 :
在设置好接口之后 直接从业务实现类new方法 调用接口实现类
如图 我们调用UserDaoImpl接口 用测试
可以看到用测试 直接调用业务实现类 获取到了Dao层的数据
测试 →Service→Dao (三层架构?)
我们在做一个测试 调用Mysql数据
更改业务实现类
成功获取
思考 :假设Dao层新增 那么每次要调用Dao新增 我们便需要每次修改Service 来实现 让测试调用太过繁琐
这里我们使用Set注入法测试
更改业务实现类 利用Set方法进行动态值的注入!
更改测试层代码 每次想调用数据 直接更改红箭处
注意:需要更改为业务层的对象 !!否则无法使用SetUserDao方法!
测试结果
更改为Mysql
获取成功
好处:
通过Set注入成功实现 每次新增完毕Dao层 用户调用 无需更改业务层代码 看用户需要什么自己调用什么
对IOC初解:改变了原本程序的主动性(主动创建对象)使其变为被动(无需自己创建对象)
加上set注入之后 让我们无需在业务实现层多费功夫 更专注于Dao层的代码
将原本的步骤调用新增XX:
原本:新增XX并调用 现在: 新增XX并调用
↓ ↓
Dao层新增XX Dao新增XX
↓ ↓
Servile层更改调用Dao层XX 测试层调用新增XX
↓
测试层调用