在《spring详解-1之Spring核心模块》中讲解了Spring的组件构成,接着我们回过头来深入认识一下Spring是什么?

Spring是一个轻量级的IoC和AOP的容器框架。

上面一句话概述出了Spring是什么,这里可能会有朋友问什么是轻量级,什么是IoC,什么是AOP,什么是容器,什么是框架?这类问题,那么我们现在就针对这部分术语为大家解释。

轻量级:主要指其底层实现没有那么复杂,另外占用的资源比较少;还有一个叫法是非侵入性

这里还有一个专业名词需要给朋友们解释一下,就是非侵入性:有朋友之前如果学习或使用过Struts2,自定义一个action类可以选择去实现struts2的action接口或继承ActionSupport类,这样的话就可以使用接口中的一些常量,像这种方式去继承或实现接口去获取一些功能,就可以说是具有侵入性,也就是说自定义的那个action类其实是知道Struts2框架是存在的;当然我们在自定义Action类的时候也可以选择不去继承或实现Struts2框架提供的接口或类,那这样的话,自定义的Action类就不知道Struts2框架是否存在,这就叫没有侵入性,简单说我只需要提供一个自定义类,它并不知道框架是否存在。

IoC(inversion of control 控制反转):是指对象如何得到它的内部关系对象的责任反转了

普通方式创建对象和其管理对象

普通创建对象并且创建对象的关联对象时是需要我们手动去创建的。有了IoC以后这些都不需要我们去做,而是将这些工作都交给Spring去管理维护了。只需要我们在类中给属性提供getter、setter方法并提供响应的配置文件即可。这其实就是IoC。

IoC方式创建对象和关联对象:

spring三大特征详解(Spring详解-2之Spring是什么)(1)

IoC方式创建对象和关联对象

通过两张图比较会发现,有了IoC容器以后,我们只需要把我们应该关注的业务作为重点关注部分,而和业务无关的我们很方便的就交给了IoC容器去管理,另外,朋友们还发现普通创建并组合关联对象时其实是一种主动的定位查找被关联的对象;而使用IoC容器以后主动就变成了被动,就是让Spring把被关联的对象先创建出来,再给到我们即可。这样我们的中心就转移到了具体业务上去了。

AOP(面向横切面编程):指将和业务无关的通用性功能,抽取出来作为一个组件,放置在一个横切面中,例如:处理字符编码问题的功能;我们使用的Filter和Intercepter都是AOP的具体实现。

容器:可以管理对象,控制对象的生命周期

框架:将一些重复性,通用性的代码进行封装,使用其搭建成一个除业务流程外的代码的骨架。

这篇写到这里,后续详细讲解IoC和AOP

,