作为一个Java开发者,Spring框架应该基本上都用过的,由于Spring框架太过于强大,导致我们可能只知道Spring框架,但其实还有很多优秀的框架可以供我们使用,本文将介绍6个和spring框架类似的框架。
Grails是一个基于Groovy语言的构建在Spring Boot之上的强大的面向JVM的Web应用框架。
Java 领域的许多现代 Web 框架都比需要的要复杂得多,并且不遵守DRY(Don’t Repeat Yourself )原则。像Rails和Django这样的动态框架为更现代的Web应用程序思维方式铺平了道路。Grails建立在这些概念之上,大大降低了在Java平台上构建Web应用程序的复杂性。然而,它的不同之处在于,它通过构建已经建立的Java技术(如Spring和Hibernate)来实现。
官网:https://grails.org/
GitHub:https://github.com/grails
Grails是一个全栈框架,试图通过核心技术及其相关插件解决尽可能多的Web开发难题。Grails开箱即用的内容包括:
以上所有都通过Groovy语言的强大功能和领域特定语言(DSL)的广泛使用而变得易于使用,Grails是构建在Springboot之上的,它利用了Spring的功能,例如依赖注入。
Grails不仅仅是一个Web框架,它由各种子项目组成。下表总结了生态系统中的其他一些关键项目。
项目 | 项目描述 |
---|---|
GORM for Hibernate | SQL 数据库的对象映射实现 |
GORM for MongoDB | MongoDB数据库的对象映射实现 |
GORM for Neo4j | Neo4j图形数据库的对象映射实现 |
JSON Views | 用于在服务器端呈现 JSON 的视图技术 |
Groovy Server Pages | 用于在服务器上呈现 HTML 和其他标记的视图技术 |
Async Framework | 异步编程抽象,支持 RxJava、GPars 等 |
Micronaut由Grails框架的创建者开发,并从多年来使用Spring、Spring Boot和Grails构建从单体到微服务的实际应用程序中汲取灵感。Micronaut 是一个轻量级的Java全栈框架,具有低内存占用和快速启动的特点,适用于构建小型、高性能的微服务应用程序。与Spring Boot类似,具有依赖注入、AOP、Web开发和云原生等功能。
官网:https://micronaut.io/
Github:https://github.com/micronaut-projects
Micronaut 旨在提供所有构建微服务应用必要的工具,包括:
同时,Micronaut 框架旨在通过提供以下功能来避免Spring、Spring Boot和Grails等框架的缺点:
这是通过在编译时预先计算框架基础结构来实现的,这减少了应用程序工作所需的运行时逻辑。
Vert.x 是一个由Eclipse基金会管理的工具集,用于在JVM上构建响应式应用程序。它是一个工具集,而不是一个框架,所以它可以组合和嵌入到其他框架。
官网:https://vertx.io/
GitHub:https://github.com/eclipse-vertx
Vert.x使用底层I/O库Netty ,它拥有以下特性:
传统的Java堆栈是为单体应用设计的,启动时间长,内存需求大,而当时还没有云、容器和Kubernetes的存在。Java框架需要发展以满足这个新世界的需求。Quarkus的创建是为了使Java开发人员能够为现代的、云原生的世界创建应用程序。Quarkus是一个为GraalVM和HotSpot定制的Kubernetes原生Java框架,由最佳的Java库和标准精心打造。其目标是使Java成为Kubernetes和无服务器环境的领先平台,同时为开发者提供一个框架,以解决更广泛的分布式应用架构问题。
官网:https://quarkus.io/
GitHub:https://github.com/quarkusio
Quarkus特性:
上图是Quarkus性能测试对比图,可以看到无论是内存占用和响应时间,Quarkus都有很大优势。
Play Framework 是基于一个轻量级的、无状态的、Web 友好的架构。Play 建立在 Akka,Play 提供可预测的和最小的资源消耗(CPU,内存,线程)的高度可扩展的应用程序。
作为一个全栈框架,Play 包含构建 Web 应用程序和 REST 服务所需的所有组件,例如集成的 HTTP 服务器、表单处理、跨站点请求伪造 (CSRF) 保护、强大的路由机制、I18n 支持等的。Play 可以直接支持日常任务和热重载来节省宝贵的开发时间。
Play 结合了生产力和性能,可以轻松使用 Java 和 Scala 构建可扩展的 Web 应用程序。借助 Play,应用程序可以通过无状态和非阻塞架构实现可预测的扩展。Play 默认采用 RESTful,包括资产编译器、JSON 和 WebSocket 支持,非常适合现代 Web 和移动应用程序。
官网:https://www.playframework.com/
GitHub:https://github.com/playframework/playframework
Play Framework 具有以下特点:
Dropwizard是一个开源的Java框架,用于开发易于运维、高性能的RESTful网络服务。它由Yammer开发,增强了基于JVM的后端服务,集合了来自Java生态系统中的稳定和成熟的程序库,组成了简单、轻量级的程序包,使得用户可以专注于把事情做好。Dropwizard是开箱即用的,它支持复杂的配置、应用环境、日志和运维工具,使得用户和用户的团队可以在最短的时间内交付一流品质的HTTP+JSON网络服务。
官网:https://www.dropwizard.io/
GitHub:https://github.com/dropwizard/dropwizard
Dropwizard框架的优点:
这些框架在不同的场景和需求下具有各自的优势和特点,感兴趣的可以自行学习一下。