在上一个帖子中(https://mp.csdn.net/mp_blog/creation/editor/123457682)我们阐述了spring中的核心思想和spring到底是用来干什么的。
在这个贴子中,我将尽力阐述,spring是如何做到降低耦合的
首先,我们要知道,spring是一个什么? 当然,它是一个框架,但同时,它也是一个容器,一个用来存储对象的容器。一个可以兼顾事务控制的存储容器,一个可以兼顾事务控制并且极大降低程序中依赖的容器。在这里我先只介绍它是如何降低依赖的。
## IOC(控制反转)
先说结论spring是通过IOC(控制反转)来降低依赖的,故名思意,控制反转就是将控制对调,又或者说,将控制权交出去,然而在程序中,我们创建实体类,通过实体类new对象,控制权是掌握在我们手里的,在学习JAVASE时,我们总是在程序中任意的new对象,初学时,可能这并没有什么,但在实际项目中这会加大我们程序的耦合性,使我们难以维护和升级。举个很简单的场景,如果我们想统一去更换类名,我们就需要,在全局的成千上万个地方去修改,且不说,你能一个不漏,你要真能修改完,我觉得玉皇大帝都得给你禅位,所以在spring框架中,我们通过工厂模式(后面有解释)来将创建对象这一行为交给spring框架来做,让spring框架对其进行维护和统一管理,我们只需要在spring的配置文件中简单配置就可以轻松获取对象,当再次遇到要修改类名这种情况,我们就只需要重新修改配置文件即可。
下面我在来说一下,IOC的一些细节,首先解释一个名词,工厂模式,故名思意,类似工厂的模式,工厂是什么模式呢?通过一个生产线去生产一类物品,类比到Java中,就是你提供实体类,然后通过一个工厂类去批量的new对象。最后我们只需要向工厂去要这个对象,而不需要再去自己手动new。也就是说,我们将控制权交给了spring框架。
最后,我简单说一下,我并未将spring中诸多细节,例如工厂是如何去创建对象的,以及,spring又是如何读取配置文件来给工厂的,创建的对象又是如何存储的一一细数,因为本人也曾看过许多博客,很多博主费劲心力,代码文字,图片视频,但对于初学者来说,框架思想永远是最重要的,有了思想就可以清楚目的,也就可以很轻松的去学习,至于细节,网上的教学视频,事无巨细,生动形象,我相信一定可以看的清楚透彻,我在这里就用最朴实的语言阐述一下框架的思想。再就是,如果觉得我所述有何问题,烦请留言告知,本人虚心接受。



