2016年7款最佳 Java 框架
毫无疑问,Java 是目前最为流行的编程语言之一,这里我们挖掘出了一些比较受欢迎的框架的有效信息,它们可以减轻全球软件开发人员的日常工作。
RebelLabs的一项调查显示,通过在线Java用户论坛(虚拟JUG)媒体联盟的调查统计,2016年度最佳Java框架阵容如下:

数据来源:RebelLabs for Zero TurnAround Inc.
我们不会仅仅基于上面图标的对比迫使你或让你草率作出结论,但是我们会给你介绍每个概念的概述,供你分析和对比他们之间的区别,然后根据你的项目选择最完美的匹配。
1. Spring MVC

自从10多年前的第一次发布之后,SpringMVC老当益壮,继续保持着领头羊的地位。在其完全拥抱 MVC框架之后,Spring 不断的发展与变化着,转变成了一个功能全面的面向互联网应用程序的Java框架, 它能提供给软件工程师的是一个用于web应用程序开发的强大工具集,以及针对安全项目的应用程序配置。作为程序员世界最受欢迎的一员,Spring所拥有有发育良好的生态提供了许许多多的附加选择: REST API 或者是 SOAP web 服务, 安全(认证和授权、加密)等等。这一选择的另一个优势就是大公司的开发者同行们也都在使用这个 Java 框架。因此,如果你有困难想要寻求帮助,他们随时都能给予援手。
优缺点
Spring 高居榜首并不是没由来的。它能成为最好最知名的Java框架是因为:
- 简单的POJO测试数据注入方式。
 - 增强过的模块化,因此拥有更好的代码可靠性。
 - 不同模块之间解耦和。
 - 能灵活运用的依赖注入(DI)。
 
不管文档有多少,Spring MVC都可能并非是一个Java开发的新手能掌控的,尽管这并不是框架的一个直接缺陷,但学习曲线真的是有点太陡了。因此,在碰到这个 Java 框架中文档相对比较缺乏的某些部分时,处理起来是会有点困难的。你找的信息如果版本不同,兴许也会有差异。顺便提一句,依据我们的工程师的至上经验,Spring MVC是我们最喜爱的框架之一。
2. Struts 2

为了更详细的阐述现代软件工程师广泛使用的现有Java框架,我们决定参考Apache的Struts 1后继版本Struts 2。这个Java框架对于使用构建当代Java EE Web应用程序的工程师来说是一个很好的选择。Apache软件基金会为开发人员提供了一个广泛的工具,用于创建企业级的面向Web的应用程序,开发过程的优化从开始贯彻到结束,还提供后期的维护。如果你还在为高负载系统(如广播门户)发愁,这个框架将是你的不二之选。
如果使用Struts 2实现Action类(普通POJO对象),那么测试编写的代码所需的工作量会较少。使用框架API,耦合变得更容易,有助于调整拦截器。
优点和缺点
当你问自己为什么要考虑Struts 2时,一定会想到不必重写或者不用实现Action类所带来的极大便利——这些功能它已具备!IT工程师为多个操作创建重复设置代码不再是一个问题,因为拦截器会处理它。
但是,你可能会因为这个Java框架的重量级而放弃这个框架:有一些程序员发现它不够灵活。
3. Hibernate

尽管也没有位列 RebelLabs 的名单当中,但是在讨论最好的 Java 框架时, Hibernate 还是值得一提的。这个 Java 映射框架借助于将持续存在的数据库访问操作替换为高层次的对象处理功能,来解决对象-关系的不匹配问题。每一个企业应用程序的情况都不同,而Hibernate则拥有功能强大的工具套件来帮助后台开发人员对其数据访问层进行微调。这是一个高级的 ORM 框架,你可以用它来在 Java 对象(实体)上进行数据库操作。利用 Hibernate 缓存来将 Java 环境中的数据持久化到数据库是一个持久化的概念、
优缺点
只要对你写的代码做点小修改,Hibernate 就可以帮助你同任何数据库进行通信, 它弥合对象和关系词之间的鸿沟。最重要的是:
- 不管是 Oracle, Db2, 或者是 MySQL, Hibernate 是 DB 独立的。
 - 缓存机制能对类似的查询操作进行优化。
 - 支持 N+1 或者懒加载。
 
尽管有其显著的优势,但Hibernate并不允许多次插入操作,也不支持一些 JDBC 能支持的查询操作。此外,如果是只有几个表的小规模的项目,采用这个Java框架也许并不是一个好主意。
4. JSF

作为java EE的一部分,JavaServer Faces被Oracle所支持。虽然这不是一个可以进行快速java开发的最好框架,但它很容易使用,因为Oracle提供了大量文档。此外,除非你离开java EE环境,JSF不需要任何的外部依赖,而功能非常强大。它拥有丰富的库和工具(包括一个简单的用户界面生成工具),使之成为了一个神奇的魔法棒,无论应用程序可能看起来有多么复杂,它都可以给予你支持与帮助。
优缺点
如前所述,JSF是java EE的一个组成部分。因此,开发者可以使用IDE的软件套件,以及来自业界领先的厂商提供的最高水平的支持。
相反,对于那些之前在网络开发方面所具有的经验和技能基础还不够牢固的人来说,JavaServer Faces还不太容易理解。
5. Vaadin

当现代开发者创建商业应用程序,并使用GWT渲染终端网页时,Vaadin称得上是一个超级流行的框架。Vaadin利用一个众所周知的基于组件的方法,能够适应浏览器的变化,从而减轻了开发商的负担。它拥有一套扩展的用户界面组件,以及各种不同的部件和控件,可以让程序员在任何时候都可以建立一个很酷的应用程序。
优缺点
通过在java或HTML中的开发布局,Vaadin提供了可以使用MVC或MVP进行数据绑定的方法。而且,拖放支持以及其他突出的特点简化了对java应用程序单页UI的创建。
另一方面,由于Vaadin会向服务器发送回每一个事件,从而导致移动应用程序用户界面的反应迟钝,这是一个需要考虑的问题。
6. Google Web Toolkit

GWT是另一个免费的java框架,它允许程序员创建和优化复杂的网络应用程序。GWT的软件开发工具包包括核心的java API和小部件,构建随后可以编译成JavaScript的应用程序。
优缺点
使用谷歌网页工具包,你就可以通过单一的代码库(用java在浏览器和服务器端编程)来简化开发和调试的过程。通过与其他技术的简单集成可以使程序员在网页中嵌入GWT小部件。能够自定义部件的另一个好处是可以在GWT的帮助下创建。
然而,如果你是一个网页设计师,GWT可能不是最好的java框架选择;因为它对于创建普通的HTML以及后期的动态内容布局没有什么帮助。
7. Grails

这个独特的框架被视为是提升工程师生产效率的动态工具,因为其干脆的API设计,合理的默认值以及约定架构。与java的无缝集成使得这个框架成为世界上众多框架中的首选。一系列强大的特性,如基于sping的依赖注入和各式各样的插件,可以提供创建现代基于web的app的所有需要的东西。
优缺点
可以快速搭建新项目,脚手架项目可以帮助节省大量宝贵时间。有一个庞大的插件库可以提供900多个容易安装的不同插件。抛开Grails的美好,对于一个全栈java开发框架,它的ORM涵盖了大量的功能,使得它成为相对的重量级软件。
如何选择?
在各种各样的,2016年流行的框架中选择适当的框架,是难以完成的任务。就像每个公司寻找盈利模式,并依据该模式来创造自己在web端和移动端需要坚守理念一样,都是非常困难的。
无论你使用什么框架,谨记如下原则,所选框架需要具备,易于安装,社区活跃,文档丰富等特点。
依赖项目类型不同,有时,明智的选择是只使用一家公司或组织下的一套框架来解决需求,但通常更有意义的是将重量级框架以轻量级框架替代。
2016年7款最佳 Java 框架的更多相关文章
- 2016年7款最流行的Java框架
		
虽然Java一直被唱衰,但是直到现在Java也坚持霸主地位不动摇,毫无疑问,Java是目前最热门的编程语言之一,所以我们为大家搜集了一些目前比较受欢迎的Java框架的消息. 根据RebelLabs对在 ...
 - 7 个最佳的 Java 框架
		
毫无疑问,Java是目前最需要的编程语言之一.在这里,我们已经挖掘了一些关于框架趋势的有用信息,以减轻全球软件开发人员的日常工作. 根据RebelLabs,也是在线Java用户组(虚拟JUG)的媒体盟 ...
 - 十款最佳Node.js MVC框架
		
十款最佳Node.js MVC框架摘要:Node.js是JavaScript中最为流行的框架之一,易于创建可扩展的Web应用.本文分享十款最佳的JavaScript框架. Node.js是JavaSc ...
 - 分享几款流行的Java框架
		
虽然Java一直被唱衰,但是直到现在Java软件开发也坚持霸主地位不动摇,毫无疑问,Java是目前最热门的编程语言之一,下面分享几个个人认为还不错的Java框架,以及各自的优缺点,希望能对大家有帮助. ...
 - 私人定制,十款最佳Node.js MVC框架
		
Node.js是JavaScript中最为流行的框架之一,易于创建可扩展的Web应用.本文分享十款最佳的JavaScript框架. Node.js是JavaScript中最为流行的框架之一,易于创建可 ...
 - Selenium 4 Java的最佳测试框架
		
几十年来,Java一直是开发应用程序服务器端的首选编程语言.尽管JUnit一直在与开发人员一起帮助他们进行自动化的单元测试,但随着时间的推移和测试行业的发展,特别是伴随着自动化测试的兴起,已经开发了许 ...
 - Java框架介绍-13个不容错过的框架项目
		
本文转自互联网,个人收藏所用. 下面,我们将一同分享各有趣且颇为实用的Java库,大家请任取所需.不用客气~ 1.极致精简的Java Bootique是一项用于构建无容器可运行Java应用的极简技术. ...
 - 消灭Bug!18款最佳的问题跟踪管理应用程序
		
摘要:工欲善其事,必先利其器,对于开发者来说,处理Bug是一件比较头疼的事,那么如何高效地解决Bug,选择一款合适的Bug跟踪处理工具会让你事半功倍. 对于开发者来说,Bug往往是他们最头疼的问题.有 ...
 - 几款主流PHP框架的优缺点评比
		
PHP是一种在国内外都比较流行的开源服务器端脚本开发语言.能够适应大中小型项目的开发需求.我们将在这篇文章中向大家介绍几款主流PHP框架及其相关优缺点评比,作为一个参考分享给朋友们. 主要参考的PHP ...
 
随机推荐
- Solution of Publishing failed with multiple errors Error copying file static\
			
1.前言 由于系统被IT打了防病毒补丁,然后启动web项目一直出现Publishing failed with multiple errors Error copying file static... ...
 - 在vscode成功配置Python环境
			
注意:如果您希望在Visual Studio Code中开始使用Python,请参阅教程.本文仅关注设置Python解释器/环境的各个方面. Python中的“环境”是Python程序运行的上下文.环 ...
 - python 全栈开发,Day94(Promise,箭头函数,Django REST framework,生成json数据三种方式,serializers,Postman使用,外部python脚本调用django)
			
昨日内容回顾 1. 内容回顾 1. VueX VueX分三部分 1. state 2. mutations 3. actions 存放数据 修改数据的唯一方式 异步操作 修改state中数据的步骤: ...
 - Linux学习笔记:使用shell脚本实现ftp的自动上传下载
			
在 Linux 下可以利用 Shell 实现 ftp 文件的自动上传和下载,封装至 crontab 更可实现定时调度. 1.ftp自动登录批量下载文件 ##### 从ftp服务器上的/home/dat ...
 - 2017-2018-2 20155225《网络对抗技术》实验九 Web安全基础
			
2017-2018-2 20155225<网络对抗技术>实验九 Web安全基础 WebGoat 1.String SQL Injection 题目是想办法得到数据库所有人的信用卡号,用Sm ...
 - 【C++ Primer | 10】STL算法
			
第一部分 find(beg, end, val) equal(beg1, end, beg2) min(val1, val2) max(val1, val2) min_element(beg, end ...
 - C# event关键字
			
直接使用委托的写法,如下: using System; namespace ConsoleAppTest { class Program { class Test { static void Main ...
 - [转] Sublime Text3 配置 NodeJs 环境
			
前言 大家都知道,Sublime Text 安装插件一般从 Package Control 中直接安装即可,当我安装 node js 插件时候,直接通过Package Control 安装,虽然插件安 ...
 - ctsc2018
			
day1: 8:20分还不知道考场在哪给ccf差评 8:30开始看题 第一题感觉是个模拟啊 很烦 瞄了一眼第二题第三题题意挺简单的啊感觉还不错 然后开始仔细看t1 然后我发现好像可以退狮子 应该是个数 ...
 - UOJ Round #1 题解
			
题解: 质量不错的一套题目啊..(题解也很不错啊) t1: 首先暴力显然有20分,把ai相同的缩在一起就有40分了 然后会发现由于原来的式子有个%很不方便处理 so计数题嘛 考虑一下容斥 最终步数=初 ...