在这段时间之中,Java作为在世界上需求最大的编程语言之一是毫无疑问的。在这里,我们收集了一下关于比较流行的框架,以方便广大软件开发者的日常所需。

根据RebelLabs进行的一项调查显示,在线媒体盟友的Java用户组(Virtual JUG),2016年最佳阵容的Java框架如下:

图片来源: RebelLabs for Zero TurnAround Inc.

我们不会强迫读者基于上面的表格而过早的得出结论,接下来我们会给你展示每一个框架的基本内容,让你分析和对比差异,最终选择最佳的框架匹配根据您的项目。

1. Spring MVC

一句话,经久耐用。自SpringMVC第一次发布的这十多年以来,它仍然占据着技术制高点。在SpringMVC不断完善MVC框架的过程中,Spring也通过不断变化发展成为了一个面向互联网的全面的Java框架,提供给软件工程师一个强大的工具包,用于开发web应用,同时提供安全的应用环境。Spring之所以能够集程序员们万千宠爱于一身,是因为其完善的体系,提供多样化的插件方式,例如:REST接口,SOAP web service,安全保障(授权、认证、加密)等等。选择SpringMVC的另外一点好处就是,现在很多大公司的开发者都选择这种典型的Java框架进行开发。所以,也许当你在遇到问题的时候,他们也会向你伸出援手的哟。


优缺点:

Spring位居排行榜首位并不是毫无原因。他之所以是最好的还有最出名的Java框架的原因主要有:

通过POJOs的使用来简化测试数据测注入

增加模块性,增强代码的可读性

不同模块之间的松耦合

依赖注入的灵活使用

接下来介绍的是Srping的缺点,尽管这不是Spring框架的直接缺点,忽略成堆的参考文档,Spring MVC可能不是新手Java开发者可以啃得下来的,使学习曲线太陡。因此,在使用这个Java框架部分内容时,可能会遇到没有任何的参考文档。还有您在互联网上找到的信息可能是不同的版本。顺便说一下,由于我们的工程师的丰富经验,Spring MVC是我们最喜欢的框架之一。


2. Struts 2

为了更加详细阐述被现代的软件开发工程师所广泛使用的Java框架,我们决定把Apache Struts 1的继任者Struts 2说上一说。这个Java框架是在工程师构建当代Java EE web应用程序之中可以找到的。Apache软件基金会已经装备开发人员提供了一个广泛的工具用于创建企业级、面向web应用程序,优化开发过程从开始到最后和后上线(post-go-live)维护。如果你的应用运行在高负载系统,如广播门户,这个框架是你的不二之选。

由于Struts 2的Action类,我们在测试编写的代码花费更少的精力和时间——Action类是纯POJO实现的对象。在耦合与框架的API的时候更容易,有助于优化Struts2的过滤器。


优缺点:

当我们在考虑是否是否使用Struts 2,还是考虑是否重写或者实现Action类花费的时候。这都将不再是问题,这已经都存在这个框架之中。由于过滤器的优化,IT工程师需要为创建几个Action类在重复的写配置代码的时代已经一去不复返。

但是,你有可能不去考虑这个这个框架的原因是由于这个Java框架的重量——许多的开发者发现这个框架不能适应敏捷开发而放弃它。


3. Hibernate

虽然Hibernate不在RebelLabs的列表中,但Hibernate在讨论最好的Java框架的时候是值得一提的。 这种关系映射Java框架通过替换持久化DB访问高级对象处理函数来解决了对象 - 关系不匹配问题。 随着每个企业应用程序都相对独立,Hibernate配备了一个强大的功能套件,帮助后端开发人员调整数据访问层。 这是一个高级的ORM框架,允许您对Java对象(实体)执行数据库操作。 它是一个持久性工具,利用Hibernate缓存将数据从Java环境持久化到数据库。


优缺点:

Hibernate允许你使用你更少的代码与任何数据库通信,弥合对象和关系之间的差距。 最重要的是:

Oracle、Db2和MySQL,Hibernate都是数据库独立的

类似查询的bug缓存数据库

支持N+1和懒惰加载

尽管它的明显优势,Hibernate不允许多个插入操作,不允许JDBC的一些查询。 此外,对于具有较少表的小规模项目,此Java框架可能不是一个好主意。


4. JSF

作为Java EE的一部分,由Oracle支持的JavaServer Faces。 它虽然不是快速Java开发的最好的框架,它很容易使用,这都是因为Oracle提供了海量的文档。 此外,在您放弃Java EE开发之前可以考虑一下JSF,JSF没有外部依赖项,而是有大量功能。 丰富的库和工具(包括一个易于创建用户界面的工具集)成为一个亮点,它可以支持你开发无论看起来有多复杂的应用程序。


优缺点:

如上所述,JSF是Java EE的一个组成部分。 因此,开发人员可以利用IDE软件套件和获取来自行业领先供应商的支持。

但是,JavaServer Faces太庞大,对于那些以前在web开发基础上的经验和技能不够坚固的人是难以理解的。


5. Vaadin

使用GWT渲染整个网页,Vaadin成为现代开发人员在创建业务应用程序时选择的流行框架之一。 利用一个众所周知的基于组件的方法,Vaadin通过与浏览器交互来实现对程序的更改,以此来消除开发人员的负担。 一个广泛的UI组件,以及各种小部件和控件,Vaadin允许程序员随时构建应用程序。


优缺点:

Vaadin通过Java,HTML或两者构建页面布局,提供了使用MVC或MVP绑定数据的方法。 页面组件的拖放支持以及其他突出的功能简化了Java应用程序的单页UI的创建。

在缺点方面,移动应用程序的UI迟缓可能是一个问题,因为Vaadin需要发送回每个事件到服务器。


6. Google Web Toolkit

GWT是另一个免费的Java框架,允许编码器创建和优化复杂的基于Web的应用程序。 GWT软件开发包具有核心Java API和小部件,用于构建编译为JavaScript的应用程序。


优缺点:

使用Google Web Toolkit,您可以获得单个代码库(Java中的浏览器和服务器端的代码),从而简化开发和调试过程。 由于GWT与其他技术的简单集成,它允许程序员在Web页面中嵌入GWT小部件。 自定义窗口小部件功能是可以在使用GWT创建网页应用的另一个好处。

然而,如果你是一个网页设计师,GWT可能不是最好的Java框架选择。 GWT对纯HTML和后期动态内容布局的网页不友好。


7. Grails

这个特殊的Web框架被认为是一个动态的工具,因为它的API,合理的默认值,以及其约定的配置范例,极大地提高了工程师的生产力。 Java的无缝集成使得这个特定的框架成为全世界许多程序员的最佳选择。 它拥有一系列强大的功能,例如Spring提供的依赖注入和各种插件,提供创建现代基于Web的应用程序所需的一切。


优缺点:

快速设置一个新的项目和基本设置为编码节省了大量宝贵的时间。 一个巨大的库提供了超过900种不同的易于安装的插件。 尽管Grails是一个全栈开发的Java框架,它有一个庞大的功能,Grails的对象关系映射,使它成为一个相对比较重量级的框架。

那么选择什么?

在2016年的各种流行的Java框架中选择合适的概念可能是一个麻烦的任务,因为每个公司基于网络和移动应用程序创建坚持自己的想法,同时选择获胜的方法。 无论您使用的是什么确切的框架,请记住许可证,安装性,编码社区的情况,以及文档等。根据项目类型,有时,明智的做法是将所有工具放在一个的地方,但很多时候,去除冗余而选择一个轻量级的框架更有意义。

另一个问题是,你的忙碌的团队是否准备好学习,有空余时间分配新的框架学习。 通常,将您的开发交给远程团队并获得产品是非常值得的。 敬请期待和快乐的发展!



转载:2016 年 7 个最佳的 Java 框架

英文原文:The 7 Best Java Frameworks for 2016 


更多推荐

2016 年 7 个最佳的 Java 框架