本帖最后由 1187682049 于 2018-9-14 15:12 编辑
说这个之前,要首先对Spring框架的思想有一个基本的了解.
Spring框架认为,一切java资源都是Java Bean,这里说的Java Bean和我们之前做项目写的Student类不是一个概念,你可以把这里的Bean理解为java的各种资源.
为了降低程序各个部分之间的耦合,Spring尽量不让程序去手动new一个新的对象,而是通过xml文件或者注解的方式,让Spring IoC容器去管理对象的创建和销毁,你只要在需要的时候把你的请求告诉IoC容器,容器就会返回给你你需要的对象,大大降低了程序之间的耦合性.试想一下,你有一个类被一千个其他类引用,当你想改为引用其他类的时候,你需要去其他类里面一个一个地去修改,这简直是个灾难.
像这样,程序放弃了java资源的创建,销毁等控制权,而是把这个权力交给了Spring IoC容器,这就叫控制转移,专业术语就叫控制反转.
Spring的IoC容器不光管理Bean的创建销毁和行为,还管理Bean之间的关系,我们通过XML描述文件来告诉容器不同Bean之间的关系,容器会识别我们的描述信息,并且根据描述信息来创建正确的Bean对象并返回给你.比如在你的描述信息里,Account类里面包含了一个User类作为成员对象,那么容器会识别它,并创建一个含有User成员对象的Account类.
这就是SpringIoC的理念,让你不需要操心各种Bean的创建和销毁 ,它来给你提供,你只需要关心的业务代码,完成你想做的功能就行了,这就是SpringIoC的魅力所在. |
|