Spring提供了全面的Jave企业级应用架构解决方案,并且随着技术的发展不断更新,目前已经到了第5版。新的框架不断加入,阵容不断强大,形成了Spring全家桶。这里做个简单介绍。
Spring目前最新的第五版,提供了大约20多个模块。创建Spring项目时,在Spring Initializr web表单中也有100多个可选依赖项。
下面介绍几个重点框架。
一、 Spring核心框架
Spring核心框架是一切框架的基础。spring的框架结构如下图。它包括了核心容器,依赖注入框架,Spring MVC,数据持久化支持等基础功能。
Spring MVC是Web开发的基础框架。它能够调用指定的控制器,来对网络请求做出响应,另外也能够创建REST API,生成非HTML的输出。
Spring核心框架也提供了数据持久化的支持,例如对JDBC的模板支持JdbcTemplate等。
最新版的Spring还增加了对反应式编程的支持,提供了新的反应式web框架 Spring WebFlux。
二、 Spring boot
Spring boot 主要在依赖管理、自动配置和监控方面提供了很多便利。
在依赖管理方面,Spring boot通过Starter关键字,根据所需要的功能,将相关依赖整体打包,避免了手工选择依赖类库的繁琐和类库版本间的冲突。
在自动配置方面,Spring boot避免了以前版本中的显示配置,通过自动装配和组件扫描技术,能够自动在项目路径下搜索组件,并装配成bean。
Spring boot还提供了强大的监控功能。通过Actuator,能够监控应用运行时的内部工作状况,包括指标、线程dump信息,应用的健康状况,以及应用可用的环境资源等。
三、Spring Data
与核心框架提供的基本数据持久化支持相比,Spring data的功能更为强大,例如增加了对关系型数据库的JPA((Java Persistence API)持久化支持等。
Spring Data JPA是spring基于ORM框架、JPA规范的基础上封装的一套JPA应用框架,可以使开发者使用极简的代码实现对数据库的访问和操作。它提供了包括增删改查等在内的基本功能,且易于扩展。
Spring Data还能处理其他多种不同类型的数据库,例如NoSql类型(Mongo),图数据库等。
四、Spring Security
Spring Security 解决了应用程序通用的安全性问题,包括身份认证、授权和API安全性等。
五、Spring Cloud
针对微服务应用,Spring提出了Spring Cloud来提供技术支持。Spring Cloud包括服务注册中心、负载均衡、断路器、配置中心、消息总线等。
服务注册中心主要是由Eureka提供。服务注册中心类似与房产中介,房产提供方将房产信息在中介处登记,谁想买房就在中介处查找需要的房源。服务注册中心就完成了类似中介的功能,能够注册服务、查询服务时效性等。
消息总线由Spring Cloud Bus实现,它作用就是管理和广播分布式系统中的消息。
负载均衡器由Ribbon实现。负载均衡主要就是在集群架构下,在各个节点间分配请求,避免某个节点的负载过重,从而达到集群整体的高可用。
有了负载就有了断路器,Spring的断路器由Hystrix实现。Hystrix就是一个能进行熔断和降级的库。当某个节点负载过重时,切断请求链路,或者转换成一个轻量级的服务。熔断器能提高整个系统的弹性。
配置中心由Spring Cloud Config实现。Config对配置文件统一地进行管理,而且能在项目运行时动态修改配置文件。
整个Spring Cloud框架对微服务的实现提供了一套完备的解决方案。
这里列举了Spring里面的一些主要框架,每个框架的内容都是相当庞大的,后续将在具体使用过程中逐渐接触到。