首页 >> 大全

Spring生态简介

2024-01-11 大全 219 作者:考证青年

目录 概述

做Java开发的人一提起,首先在脑海中浮现出的就是“IoC”,“AOP”,“ MVC”,“ ”等等这些名词,甚至大有“无不Java”的感慨。

实际上,时至今日已不再是一个简单的编程框架了,从最初的“SSH框架”发展到今天,和都几乎快要从程序员视野中消失了,而却发展成了一个非常庞大且完整的生态。

所以说,除非特别指明是生态中的某个具体框架,否则提起“”应该指的是整个生态。

说句不夸张的话,Java程序员只要精通了,也就掌握了Java开发的精髓。

在整个生态中包含了许多应用在特定场景的具体框架,如:“ ”,“ ”,“ Boot”,“ Cloud”等等,其中“ ”框架是整个生态的核心基础,其他框架都需要依赖“ ”提供的基础功能,而且每个框架都有自己独立的代码仓库。

项目说明

生态下的项目分为3类:主要项目(Main ),社区项目( ),已经终止但是目前还保留的项目( in the Attic)。

最新的生态项目列表详见: 。

主要项目

目前,生态中包含22个主要活跃的项目。

1.

项目是整个生态的基础,包含了最核心的功能,如:IoC,AOP, MVC等,其他项目都需要依赖 。

另外,还需要注意的是 项目又包含多个子模块,如:-core,-beans,-,-aop,-web,-等等。实际上, 项目是一个模块化的架构,各模块之间又存在依赖关系。我们在Java Web后台项目中使用得最多的 MVC实际上就是模块-,它与其他模块的依赖关系如下所示:

显然,-模块依赖-,-aop和-web。

2. Boot

Boot是一个开发基于的脚手架项目,它默认集成了嵌入式,配置注解化,支持快速集成第三方开发组件(如),大大降低了使用的门槛,而且内置了许多可以直接用于生产环境的功能,是目前用于开发微服务架构项目的不二选择。

值得注意的是:许多人刚接触 Boot的人把它神话了,固然使用 Boot能快速开发一个健壮的、可直接运行的项目,但是它的核心和基础来源于 。对于重度依赖的开发人员,应该先去吃透 ,只要真正掌握了 中各个模块的实现原理,对于在实际开发中使用 Boot遇到的问题也就迎刃而解了。

3. Cloud

Cloud为开发基于微服务架构的软件系统提供了一整套工具集合,其中包含了开发各个微服务组件的具体项目,如: Cloud (配置中心), Cloud (服务注册中心), Cloud (服务调用监控), Cloud (服务网关)等等。

Cloud的基础是 Boot,基于 Boot可以大大简化开发各微服务组件的流程。

4. Cloud Data Flow

Cloud Data Flow用于构建在云环境或K8S中基于微服务的实时或批数据处理架构,具体来讲就是支持一系列需要进行数据处理的场景,如:ETL,数据导入/导出,事件流,预测分析等等。

5. Data

Data旨在提供一套基于编程模型的数据访问API,是一个数据访问框架集合,其中包含了多个具体的支持不同方式访问特定数据库类型的子模块,如: Data JDBC(使用JDBC方式访问关系型数据库), Data (访问数据库)等。

这个模块的功能类似于这样的专门的ORM框架,在实际开发中可以根据需求进行灵活选择。

6.

的目的是提供一个简单的模型,用于构建企业级应用集成解决方案。

7. Batch

Batch是一个轻量级的批处理框架,旨在开发对企业系统日常运营至关重要的强大批处理应用程序。

支持事务管理,提供了基于Web的管理接口。

8.

是用于实现认证和授权,以及访问控制的安全框架,在Java生态与之提供类似的功能还有一个框架: Shiro。

依赖于 ,也就是说如果要 ,那么应用架构也必须是基于 的,这大大限制了 的使用场景;反之,Shiro就没有这样限制,而且从项目架构上Shiro更加简洁。当然, 提供了非常丰富的安全控制的功能,在某些方面甚至比Shiro更加完善,与之对应的是掌握的 的复杂度比较大。因此,对于在应用中是否选择 需要根据实际需求来决定。

9.

如果Web应用基于框架(即:使用了 MVC)开发,那么可以直接使用 来开发满足约束的服务。

这里需要理解一个单词简写:“”。( as the of state)是REST架构风格中最复杂的约束,也是构建成熟REST服务的核心。它的重要性在于打破了客户端和服务器之间严格的契约,使得客户端可以更加智能和自适应,而 REST 服务本身的演化和更新也变得更加容易。

10. REST Docs

REST Docs是一个文档工具,用于为REST架构风格的Web服务自动生成相应的文档,这样可以解放开发者专门撰写API文档的工作。

11. AMQP

AMQP项目旨在将核心的概念应用于基于AMQP的消息传递解决方案的开发中,它提供了一个“模板”的抽象用于发送和接收消息。

12.

是对 MVC的扩展,旨在简化移动Web应用的开发。

可以检测出当前请求使用的设备是PC、还是手机或者是平板以及用户设备是安卓平台还是iOS平台,然后根据请求设备的不同,返回适合该设备的视图。

13. For

虽然官方的说法是 For 旨在简化原声应用的开发,但其实这个有点太过于牵强。

For 提供了2个对原生应用开发的支持:

(1)提供了一个REST客户端

(2)支持访问安全API时的认证

14. Web Flow

Web Flow主要应用于需要在Web页面上创建引导用户执行类似“下一步”这样的基于流程的应用场景,该框架构建于 MVC之上。

15. Web

Web 用于开发服务,类似的框架如: CXF, Axis2。

16. LDAP

spring生态圈介绍__简介生态发展理论的基本思想

LDAP是一个工具,用于为基于的应用程序使用LDAP( )协议。

17.

提供了管理用户信息的API和对应实现, 使得支持集群会话变得简单,而不依赖于特定于应用程序容器的解决方案。

简单来讲,传统的方案依赖于特定的容器(如:), 就是提供独立于特定容器的解决方案。

其实,针对容器,集群化也有一个开源方案:-redis--。

18. Shell

Shell用于开发基于命令行交互的应用。

19. FLO

FLO是一个类库,是 Cloud Data Flow中流构建器的基础。

20. Kafka

Kafka用于在项目中与Kafka交互。

21.

是一个为开发人员在项目中使用状态机的框架,帮助开发者简化状态机的开发过程,让状态机结构更加层次化。

22. IO

简单来说, IO 是一个对项目依赖进行统一版本管理的工具。本质就是一个pom文件,它记录了项目和其它第三方库对应的版本信息。

社区项目

社区项目目前只有2个: ROO, Scala。

1. ROO:这是一个开发工具包,旨在快速构建一个Java应用。

2. Scala:支持在Scala中使用框架。

保留项目

某些项目已经终止了,但是仍然保留着,不必赘述。

最后总结

是一个生态系统,提供许多有用的编程框架或工具集。

本文的目的不在于详细介绍生态的每一个项目,而是通过一个全面的整理,对生态有一个完整的认识,在实际中根据需要灵活选择对应的组件来使用即可。

可以明确的是,当下最为流行的项目是这4个: , , Boot, Cloud。

如下图所示,再次对生态做一个概括性总结。

如果本文对你有帮助,别忘记给我个3连 ,点赞,转发,评论,

咱们下期见!答案获取方式:已赞 已评 已关~

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了