SPRING 框架
1.什么是框架 what is software framework
维基百科:
- 通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基本功能的软件产品。
1.1 个人理解
上述内容重点体现两个内容:
- 软件框架是一组规范,规定了在此框架上如何构建软件产品,开发者在使用某个框架进行编程时,需要遵守何种约束,基于什么标准去开展编程工作。
- 软件框架提供了软件开发者需要的一些基本功能,从此意义上说,软件框架是具备必要的基础功能及可能的扩展功能的半成品,开发者在已有的基础上进行组件的扩充和完善,并基于组件库完成业务功能的开发以解决一些特定的问题。抛离业务功能的话,软件框架在一定领域内应该是通用的,即可以适用于某个领域内的多个问题场景。
1.2 软件框架的特定
- 高内聚
- 半成品
- 封装了特定的处理流程和控制逻辑
- 成熟的,不断升级改进的软件
2. Spring框架简介
官网地址 official website:
https://spring.io
官方文档 official document website:
https://spring.io/projects/spring-framework
2.1 Spring框架是一个为了解决企业应用开发的复杂性的开源框架。
那么Spring是如何解决开发的复杂性的?个人理解:
- Spring 通过对其他框架的支持包容了大多数主流框架(hibernate, status2…)所能提供的服务,统一实现并完善了这些软件组件规范,这使得开发者不需要学习多个软件框架才能解决一些企业应用开发中的问题。
- Spring 支持整合EJB所能提供的软件中间件,包括事务,日志,通信,安全等服务。这帮助开发者可以在较少代价下基于Spring框架使用这些中间件的功能。这是Spring对于面向服务编程的支持,同时Spring也整合了AspectJ 库,很好的支持了面向切面编程。这些都是对基于面向对象编程的java语言的强大补充。
- Spring 提供了IOC容器,将业务服务抽象为Bean进行统一管理,并提供了自动扫描和注入的功能,虽然直接使用 new 手动引入也可以达成同样的目的,但是 IOC 容器无疑很好的帮助我们管理了业务服务类之间的依赖关系,并提供了强大多样的依赖注入功能及其扩展功能,这在一定程度上简化了大量的依赖引入工作。
简单的说,Spring是一个包容的,超强扩展性和可维护性的框架,提供了一站式的服务,基本上,当你完全掌握了Spring框架及基于Spring框架的 springboot ,springcloud 等其他扩展框架后, 你就能够解决 当前市场上可能遇到的 大部分企业应用开发的问题,Spring的扩展性使得他得以应用于多种不同的问题场景。
2.2 Spring是一个轻量级的控制反转(ioc)和面向切面(aop)的容器框架
- 从大小与开销两方面而言Spring都是轻量的
- 通过控制反转ioc的技术达到松耦合的目的
- 提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发
- 包含并管理应用对象的配置和生命周期,这个意义上是一种容器
- 将简单的组件配置,组合成为复杂的应用,这个意义上是框架
2.3 Spring框架组成
图片来自Spring官网
包括了:
数据持久化,jdbc框架 及 对象映射关系框架 和事务组件的集成
web端, socket ,servlet 等支持
核心的 IOC容器,上下文容器
面向切面的 AOP 及 对于 aspectJ 的支持等等。