前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
作为一个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框架的优点:
快速开发:Dropwizard框架提供了一系列的开箱即用的组件和工具,包括HTTP服务器、JDBC连接池、JSON序列化、API文档生成等,大大简化了Web应用程序的开发过程,开发者可以更加专注于业务逻辑的实现。
易于扩展:Dropwizard框架基于Jackson、Jersey、Jetty和Hibernate等流行的开源库构建,这些库都是可扩展的。Dropwizard框架可以通过自定义插件和组件来扩展和定制,例如添加新的API端点或将新的服务集成到应用程序中。
轻量级:与其他Java Web框架相比,Dropwizard框架非常轻量级。它基于Jetty HTTP服务器,使用简单的配置文件和约定,不需要额外复杂的配置,可以快速启动和运行。
易于部署:Dropwizard框架采用可执行Jar包的形式进行打包和部署,可以轻松地在任何环境中运行,例如本地开发机器、云平台或Docker容器等。
高可靠性和可维护性:Dropwizard框架通过遵循最佳实践和软件工程原则,提高了Web应用程序的可维护性和可靠性。它支持配置文件集中管理、应用程序监控、异常处理和日志记录等功能,帮助开发者更好地维护和管理应用程序。
这些框架在不同的场景和需求下具有各自的优势和特点,感兴趣的可以自行学习一下。