Spring是什么?
Spring是一个分层,轻量级兼容性高的一站式(一条龙服务)开源框架。
分层:表现层SpringMVC,业务逻辑层(Dao层)管理事务、记录日志,持久层(数据访问 层)MyBatis。
轻量级:高内聚低耦合 低耦合·对象得创建和依赖关系的维护都交给Spring容器管 理。(IOC控制反转)
兼容性高:面向切面开发(AOP)。
Spring的核心
IOC控制反转
IOC是什么?
IOC是一种理论:借助于“第三方容器”实现具有依赖关系的对象之间的解耦(IOC是一种理论思想,它的存在形式是第三方容器,被命名为IOC容器)
IOC容器,使得A、B、C、D这4个对象没有了耦合关系,齿轮之间的传动全部依靠“第 三方”了,全部对象的控制权全部上缴给“第三方”IOC容器,所以,IOC容器成了整个系 统的关键核心,它起到了一种类似“粘合剂”的作用,把系统中的所有对象粘合在一起发 挥作用,如果没有这个“粘合剂”,对象与对象之间会彼此失去联系,这就是有人把IOC容器比喻成“粘合剂”的由来。
为什么叫IOC控制反转?
软件系统在没有引入IOC容器之前,如图所示,对象A依赖于对象B,那么对象A在初始化或者运行到某一点的时候,自己必须主动去创建对象B或者使用已经创建的对象B。无论是创建还是使用对象B,控制权都在A手上。
软件系统在引入IOC容器之后,这种情形就完全改变了,如图所示,由于IOC容器的加入,对象A与对象B之间失去了直接联系,所以,当对象A运行到需要对象B的时候,IOC容器会主动创建一个对象B注入到对象A需要的地方。
通过前后的对比,我们不难看出来:对象A获得依赖对象B的过程,由主动行为变为了被动行为,控制权颠倒过来了,这就是“控制反转”这个名称的由来。
IOC理论的实现方式DI
什么是DI?
DI依赖注入:是指由IOC容器在运行期间,动态主动地将某种依赖关系注入到对象之中。(DI是一种过程,是指由IOC容器运行中将某种依赖关系注入到对象)
·所以,依赖注入(DI)和控制反转(IOC)是从不同的角度的描述的同一件事情,就是指通过引入IOC容器,利用依赖关系注入的方式,实现对象之间的解耦。
AOP面向切面编程
什么是AOP?
AOP概念:面向切面编程:扩展功能不修改源代码实现。
AOP采用横向抽取机制,取代传统的纵向继承体系重复性代码(性能监视,事务管理,安全检查,缓存)
Core Container(核心容器)
Beans模块:
什么是Beans模块
Bean工厂与bean的装配,BeanFactory接口使用控制反转对应用程序的配置、依赖性规范与实际的应用程序代码进行分离。但是BeanFactory容器实例化后并不会自动实例化Bean,只有当Bean被使用时BeanFactory容器才会对该Bean进行实例化与依赖关系的装配。
Core模块:
控制反转IoC(Inversion of Control)与依赖注入DI(Dependency Injection)的基本实现,控制反转是种设计思想,即将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。
Context模块:
spring的context上下文,即IoC容器,它扩展了BeanFactory,为它添加了Bean生命周期管理、框架事件体系、资源加载透明化等功能,此外该模块还提供了很多企业级支持,如远程访问、任务调度等。ApplicationContext是该模块的核心接口,它扩展了BeanFactory,ApplicationContext容器实例化后会自动对所有的单实例Bean进行实例化与依赖关系的装配,使之处于待用状态。
spring-expression模块:
spring表达式语言,是统计表达式语言(EL)的扩展模块,可以查询、管理运行中的对象,同时也方便的可以调用对象方法、操作数组、集合等。最出色的要数函数调用和简单字符串的模板函数。
来源:CSDN
作者:痞猫
链接:https://blog.csdn.net/qq_41227463/article/details/104422410