Spring学习之旅(三)Spring工作原理初探
详细的废话相信很多书籍视频资料都已经很多了,这里说几个小编个人认为对于理解Spring框架很重要的点。欢迎批评指正。
1)Spring的控制反转
先说说“依赖”,在面向对象程序设计中,类A中用到了类B的实例对象或者类B的方法,叫做类A依赖于类B。
在传统的代码实现中,这种依赖关系通过程序代码直接实现。而在Spring中,把这个工作交给了IoC容器,对象的依赖关系由容器来控制,程序只负责接口(Interface)的控制。
这种控制权从代码到外部容器的转移,称为“控制反转(IoC—Inversion of Control)”,也称为“依赖注入(DI—Dependency Injection)”。
这是Spring框架的核心。Spring的核心容器(Core Container)就是IoC容器。
例如,前两篇博文案例中所用到的配置文件hellobean.xml。将对象实例化由以new的方式转变为了以xml配置(或者是注解(annotation))的方式实现。将实例化对象的控制权“反转”给了IoC容器。同时,在容器实例化对象时,对象之间的相互依赖关系也构建好了。
2)Spring框架的工作原理
Spring框架的核心组件是Spring IoC容器(BeanFacory接口或者ApplicationContext接口)和Spring配置文件(或者注解配置信息)。
Spring的基本思想是:把对象之间的依赖关系转移到配置文件(或者注解配置)中,由工厂类(BeanFacory接口)来创建对象。
由容器动态地创建并注入对象,决定所配置对象的创建、管理和销毁。
程序执行过程:
(1)根据业务要求创建实体类或给出接口的实现;————例如上两篇博文中的HelloBean类
(2)利用所创建的类,在配置文件中配置Bean信息;————例如上两篇博文中的hellobean.xml配置文件
(3)创建Spring容器(该容器与配置文件相关联——读取配置信息)————例如上两篇博文中的web.xml文件中的配置上下文参数,然后在jsp脚本中获取获取
(4)从容器中获取实例对象,由对象调用方法完成所需要的业务处理。
本篇参考书籍《Java EE框架开发技术与案例教程》