SpringIOC引入

1. 问题引入:

项目中Servlet需要Service Service需要Dao 我们是手动的通过new的方式提供的,会带来一些问题

1.1 所有的service或者dao都是new出来的,代码都是直接耦合在一块的。我们的设计目的尽量做到:高内聚低耦合。如果service的实现或者dao层实现需要修改,则需要把所有代码中所有new的地方都要改一遍。

1.2 所有代码都需要修改,不光是工作量的变化,而且需要重新编译

1.3 维护扩展不方便 我们的关注点必须考虑对象的整个创建过程和初始化过程。


2. 进行改进

改造的思路:

1.出现以上的问题的主要原因就是:

开发人员自己手动的处理了各层对象的创建过程和相互之间的依赖关系管理,所以要想降低各层之间的耦合,出发点就是把new的过程从开发人员任务中去掉。

2. 达成目标:

对象的创建权限由我们(开发人员),交给BeanFactory

对象中的依赖关系的赋值,由我们 也交给了工厂自动赋值


3. 总结

对象创建权限的变化(我们-工厂)的思想叫做IOC控制反转
我们写的工厂可以看作是IOC思想的一种具体实现 叫做IOC容器

对象之间依赖关系自动赋值,叫依赖注入 Dependency Injection

猜你喜欢

转载自blog.csdn.net/G7581/article/details/114857513