17个最受欢迎的 Java 框架:优点、缺点和更多(第一部分)
作者:Anna Monus
译者:Darren
Java 依旧是最受欢迎的编程语言。这里是如今被使用最多的 Java 框架第一部分。
在2018年,Java 依旧是世界上最受欢迎的编程语言。它自带一个庞大的生态和全世界超过900万的 Java 开发者。虽然 Java 不是最简单的语言,但是你不必从零开始写 Java 程序。这里有许多杰出的 Java 框架可以编写运行在 Java虚拟机上的 web 和手机应用程序、微服务和 REST API。
Java 框架允许你聚焦于你的app的业务逻辑,而不是编写如处理数据库连接或异常处理这样的基础功能。此外,如果你有一些 Java 的经验,你可以更快的开始。这些框架都使用相同的语法并且与相似的条件、模型和概念工作。
我们前 17 的 Java 框架基于直到2018年的使用情况并按字母顺序排列展示的。这里是顶级 Java 框架的第一部分。
Blade:极小占用的简单应用程序框架

Blade 是一个轻量级、高性能的 Java 框架,它允许你用简单的方式快速构建 web 应用程序。作者希望用户再一天内了解整个框架。因此,Blade 专注于简洁和优雅。
Blade 框架遵循 MVC(模型-视图-控制器)软件设计模式。它有易于理解的设计,并且不依赖其他任何第三方库或引入太多层。Blade 基于 Java 8。Netty web服务器和模板引擎也内置于框架中。它占用极小,源代码总共小于500kb。
用Blade,你可以访问 RESTful 风格的路有接口并可以将你的 app 作为当作基础 Maven 项目部署。Blade 也内置了安全功能。例如,它带有 CSRF(跨站点请求伪造)和 XSS(跨站点脚本)防御。它是一个多功能框架,因为它自带插件扩展和 webjar 资源的支持。其主站的文档是中文的。但是,它在 Github repo 也有英文文档。
Dropwizard:生产级 RESTful Web 服务

Dropwizard 是一个高性能且简单的用于快速开发 RESTful Web 服务的 Java 框架。它特别适合创建 Java 微服务。
Dropwizard 框架汇集了一些成熟的 Java 库,为你提供了快速且无干扰的开发平台。它自带了一个嵌入式 Jetty 服务器、Google Guava、LogBack、Hibernate Validator、Joda Time和许多其他流行的 Java 库。此外,Dropwizard 还包含可用于构建 RESTful Web 服务的 Jersey 和用于处理 JSON 的 jackson。你可以将 Dropwizard 想成一个独立的生态系统,包含了上述所有依赖捆绑为一个单独的包。
如果你选择 Dropwizard,你将不必花费大量时间为如配置、监控、日志的辅助功能编写代码。相反,你可以专注于你的 app 的主要业务逻辑并达到最大生产率。这就是为什么 Dropwizard 经常被称为操作友好的 Java 框架。如果你之前写过 Java 那么入门不会很难;Dropwizard 的文档甚至有一个简单的 Hello World 示例,它可以帮助你完成第一步。
Grails:基于 Groovy 的 Web 应用程序框架

Grails 是一个使用 Groovy 编程语言的 web 应用程序框架。Groovy 是一个为了增强开发者生产率的 Java 平台的面向对象语言。其语法与 Java 兼容,可以被编译为 JVM(Java 虚拟机)字节码。
虽然你需要用 Groovy 编写你的代码,但 Grails 可以和其他如 Java 开发工具、Java EE 容器、Hibernate 或 Spring 这样的 Java 相关技术配合使用。在底层,Grails 构建于 Spring Boot 之上,因此它可以使用其生产力友好的功能,比如 Spring 的依赖注入。最有可能的是,Grails 最好的事是你可以通过更少的代码获得相同的结果——感谢 Groovy 的强大功能。
Grails 遵循一些现代软件开发原则,比如约定优于配置、固定 API 以实施最佳实践以及合理的默认值。它也是开发者友好的,因为它带有详细且易于阅读的文档,循序渐进的指南以及广泛的插件库。你可以构建你自己的插件并使用 Grails 对 Eclipse、Sublime、Textmate、IntelliJ IDEA 和其他平台的 IDE 支持。
GWT:Google Web Toolkit:客户端 Java 应用程序部署为 JavaScript

GWT,或者叫 Google Web Toolkit,是Google创建的卓越的 web 框架。事实上,GWT 实现了每个想给 web 构建 Java 应用程序的开发者的梦想,它允许你编写客户端 Java 代码并部署为浏览器的 JavaScript。
GWT 读作“gwit”,它是一个稳定且维护良好的 Java 框架。没有什么比其在许多如 AdWords、AdSense、Blogger 和 Google 钱包等 Google 产品中出现能证明这一点的了。Google Web Toolkit 拥有令人惊叹的网站,其中包括你可能需要的所有工具和资源,比如教程、开发指南、入门应用程序和 Eclipse 插件。
关于 GWT 的一个很棒的事是你可以编写复杂的基于浏览器的应用程序,而不需要像 JavaScript 优化或响应式设计这样的前端技术专家。因此,你可以使用 GWT 替代客户端 JavaScript 框架,你可能已经注意到,这些框架正在以惊人的速度出入市场。GWT 提供许多高级特性,比如国际化、跨浏览器可移植性、UI 抽象、书签和历史管理功能。
Hibernate:用于更好的数据库通信的对象关系映射框架

Hibernate 是一个稳定的对象关系映射框架,可以在 Java 编程语言和关系型数据库管理系统(DBMSs)之间实现更好的通信。
当你使用如 Java 的面向对象语言时,你将遇到对象关系阻抗失配的问题(有时也称为范式不匹配)。面向对象语言和 RDMSs 以不同的方式处理数据,这会导致不匹配的问题。尽管面向对象语言结构化数据为对象的层次结构,但是关系型数据库是用表格的形式表示数据。举一个例子,这些不匹配问题中的一个是对象模型有着比关系型数据库中可用表数量更多的类。
Hibernate 为你提供一个克服 Java 的这些不匹配问题的框架。它旨在实现持久性,意味着应用程序对数据的创建和使用应该比生成它的过程活得更长。虽然 Hibernate 是为关系型数据库构建的,但是它的新版本也提供 NoSQL 数据存储的支持。它有如映射编辑器、Hibernate控制台和一个非常棒的数据库逆向工程工具这样的优秀的 开发者工具。
JavaServer Faces(JSF):基于组件的 UI 框架

JavaServer Faces(JSF)是由 Oracle 开发的为基于 Java 的 web 应用程序构建用户界面的规范。它也是 Java Community Process(JCP)的官方标准。
JavaServer Faces 的第一个版本发布于2004年,因此,它是一个非常稳定的框架。它遵循 MVC 软件设计模式并拥有基于组件的体系结构。使用 JavaServer Faces,你可以构建可重用组件的用户界面、管理你的组件的状态、连接他们到数据源以及绑定用户生成的事件到服务器端的事件处理器。
JSF 的默认模板系统是为项目显式创建的 Facelets。使用 Facelets,你可以用 XML 替代 Java 进行视图处理。但是,你也可以用其他技术创建视图,包括 UXL(XML User Interface Languge)和普通 Java。用 JavaServer Faces 创建的 Web 应用程序也可以跨不同的 Java EE 应用程序服务器。
JHipster:使用 Spring Boot 和 Angular/React 的 Web 应用程序和微服务

JHipster 是一个较新的框架(发布于2013年),它用一个方便的应用程序生成器将 Spring Boot 和两个流行的前端框架(Angular 和 React)结合在一起。使用 JHipster,你可以快速生成现代的基于现 Java 的 web 应用程序和微服务。
Spring Boot 允许你创建基于 Spring 的只需要最少化配置的产品级的应用程序。JHipster 在客户端将它和 Angular、React 以及 Bootstrap 结合起来,为你提供全栈架构。如果你希望查看 JHipster 应用程序在显示生活中看起来是什么样的,请查看 Angular 和 React 的示例程序——都是由 JHipster 团队创建的。
JHipster 让你在两种架构风格中进行选择。首先,你可以选择将前端和后端组合在一个单独应用程序的单体式架构。其次,你可以选择前后端分离的微服务架构。JHipster也集成了许多工具并为客户端与服务器端编码、打包以及不同的 DevOps 任务提供了大量选项。毕竟像 Adobe、Siemens、Bosch、HBO以及Google这样的领先品牌使用 JHipster 不是一个巧合。
MyBatis:更简单的SQL管理持久化框架

MyBatis 是一个 Java 应用程序的持久化框架,使得使用 关系型(SQL)数据库更容易,更快捷。该框架扮演了应用程序和数据库之间的中间件,并解决其源于不同体系结构的问题。
你可以将 MyBatis 是为你的应用程序的 Java 代码和底层 SQL 数据库之间的抽象层。默认情况下,你需要使用使用 JDBC(Java Database Connectivity) API 从你的 Java 代码来来访问像关系型数据库或电子表格等数据源。MyBatis 简化了这个操作并让你可以使用更少的代码与关系型数据库进行交互。例如,你可以只用一行代码执行 SQL 语句。
事实上,MyBatis 和 Hibernate 框架相似,它们都旨在提升应用程序层和数据库的通信。但是,MyBatis 不会像 Hibernate 那样映射 Java 对象到 数据库表,它将连接 Java 方法到 SQL 语句上。因此,当你使用 MyBatis 框架的时候,SQL 并不向你隐藏,并且你仍然可以控制SQL的执行。
以上就是第一部分的全部!请务必收听我们明天关于更多顶级 Java 框架的讨论。
spring4all.com感谢有你