目录
Spring是什么
- Spring是分层的JavaSE/EE应用 full-stack(一站式)轻量级开源框架
- 分层架构允许使用者选择使用哪一个组件
- Spring的用途不仅限于服务器端的开发,任何Java应用都可以从Spring中受益
Spring体系结构
- 底层是核心容器
- Spring的核心容器是其他模块建立的基础
- 由Spring-core
- Spring-beans
- Spring-context
- Spring-context-support和Spring-expression(Spring表达式语言)等模块组成
- 中间层技术
- AOP
- Aspects
- 应用层技术
- 数据访问与数据集成
- Web集成
- Web实现
- 基于Test测试
Spring优势
- 方便解耦,简化开发
- 方便集成各种优先框架
- 方便程序的测试
- AOP编程的支持
- 声明式事务的支持
- 降低JavaEE API的使用难度
- Java源码是经典学习范例
耦合与内聚
- 耦合(Coupling):
- 代码书写过程中所使用技术的结合紧密度
- 用于衡量软件中各个模块之间的互联程度
- 耦合度越高互联度越高
- 内聚(Cohesion):
- 代码书写过程中单个模块内部各组成部分间的联系
- 用于衡量软件中各个功能模块内部的功能联系
- 程序书写的目标:高内聚,低耦合
- 就是同一个模块内的各个元素之间要高度紧密
- 但是各个模块之间的相互依存度却不要那么紧密
工厂模式发展史
- 第一阶段:
- 应用程序(UserServiceImpl)
- 通过new调用
- 资源(UserDaoImpl)
- 应用与资源紧耦合
- 变更实现必须修改调用方源代码
- 第二阶段:
- 多了个工厂(UserDaoFactory)
- 工厂与资源紧耦合
- 应用与资源断开耦合
- 变更实现无须修改调用方源代码,但是需要修改工厂代码
- 第三阶段:
- 多了个配置(resource.xml)
- 工厂通过读取配置文件,读取类名,利用反射创建对象
- 资源与工厂也断开耦合
- 资源与配置文件紧耦合
- 变更实现无须修改调用方代码,也无需修改工厂代码,仅需要修改配置文件
- 这样维护成本很小
- 使用工厂+配置的形式,这就是Spring雏形
IOC
- 不理解看前面的耦合与内聚,工厂模式发展史,那些是铺垫
- IOC(Inversion Of Control)控制反转
- Spring反向控制应用程序所需要使用的外部资源
- 对象A获得依赖对象B的过程,由主动行为变为了被动行为
- 控制权颠倒过来了,这就是“控制反转”这个名称的由来
- Spring控制的资源全部放置在Spring容器中,该容器称为IOC容器
- 传统模式下,资源的主控权在类手中
- IOC模式下,主控权则在Spring手中
本文含有隐藏内容,请 开通VIP 后查看