一、什么是Spring?
通常会通过狭义和广义两个角度去看待这个问题。
狭义的Spring是指Spring框架(Spring Fremework)
广义的Spring是指Spring生态体系,如下图所示:
二、Spring IOC(Inverse of Control 控制反转)
控制反转只是一个设计理念,而并不是具体的某一项技术。
所谓控制反转,就是由代理人来创建和管理对象,消费者就只需要通过代理人来获取对象即可。
这样的目的,就是为了降低对象之间的直接耦合。
这就好比顾客去买苹果,如果直接对苹果进行购买,那无疑就是让对象直接引用导致对象硬性关联,后期程序就会难以扩展和维护。
而IOC就好比果商的冷冻仓库,加入IOC容器将对象进行统一的管理,让对象关联变为弱耦合。
对此,我们只需要将IOC容器作用于统一的创建和管理对象依赖,即可解决问题。
三、DI依赖注入
IOC是设计理念,是现在程序设计遵循的标准,是宏观目标。
IOC是设计理念,那么DI是具体的技术实现,是微观实现。
DI在Java中利用反射技术实现对象注入。
四、本章小结
对于Spring IOC容器的职责,我总结出以下几点:
对象的控制权交由第三方统一管理——IOC控制反转。
利用Java反射技术实现运行时对象创建和关联——DI依赖注入。
基于配置提高应用程序的可维护性和扩展性。