1. 首页
  2. IT资讯

开发大型项目必备 98%公司都在用的十佳 Java Web 应用框架

“u003Cdivu003Eu003Cpu003E众所周知,工欲善其事,必先利其器。选择一个好的 Web 应用框架就像一把称手的兵器,可以助大家披荆斩棘。u003Cu002Fpu003Eu003Cpu003E今天就为大家整理了十佳 Java Web 应用框架,并简单讨论一下它们的优缺点。u003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F1534316101625ca2bbd8443″ img_width=”400″ img_height=”130″ alt=”开发大型项目必备 98%公司都在用的十佳 Java Web 应用框架” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003Eu003Cstrongu003E第一,大名鼎鼎的Spring MVC框架u003Cu002Fstrongu003E。Spring MVC 框架堪称是一个教科书式的 MVC (模型Model、视图View和控制器Controller)框架,严格组照 MVC 模式要求进行分层设计。经过多年的发展,Spring MVC 已经发展成了一个 Web 应用程序的全能架构。u003Cu002Fpu003Eu003Cpu003E易用性方面, Spring MVC 为 Web 应用程序的开发和配置提供了有用的工具箱。扩展性方面, Spring MVC 也以插件多而出名,大量优秀插件可供选择,如SOAP 服务、REST API 和安全认证。u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E优点:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Colu003Eu003Cliu003E强大的模块化功能,代码可读性高;u003Cu002Fliu003Eu003Cliu003E可以通过 POJO (Plain Ordinary Java Object,简单的Java对象)对测试数据进行简单的注入;u003Cu002Fliu003Eu003Cliu003E可以灵活使用DI(DependencyInjection,依赖注入,或者叫控制反转);u003Cu002Fliu003Eu003Cliu003E不同模块间是低耦合的(上面四点优点归根结底还是耦合度低)。u003Cu002Fliu003Eu003Cu002Folu003Eu003Cpu003Eu003Cstrongu003E缺点:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Colu003Eu003Cliu003E对于新手来说,实现的难度比较大;u003Cu002Fliu003Eu003Cliu003E学习曲线比较陡峭,即入门比较难。u003Cu002Fliu003Eu003Cu002Folu003Eu003Cpu003Eu003Cstrongu003E第二,JSF。u003Cu002Fstrongu003E它可以说是所有 Java 框架中的与 Java 关系最近的,因为它和Java 都是 Oracle 的嫡系部队。JSF 也许并算不上最好的 Java 框架,但是由于 Oracle 的加持,JSF 的文档是最全也最容易找到的。u003Cu002Fpu003Eu003Cpu003E此外,由于 JSF 已通过 JCP 格式化为 JavaEE 的一部分,所以你只要安装了 J2EE,就可以无障碍使用 JSF 了。复杂的功能也能用JSF 提供的大量工具和库来实现。借助 JSP(Java Server Pages),JSF 还可以支持不同的 Facelets 和 XUL 技术。u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E优点:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Colu003Eu003Cliu003E由于 JSF 集成在 JavaEE 中,对于使用 IDE 的开发人员来说非常方便。u003Cu002Fliu003Eu003Cu002Folu003Eu003Cpu003Eu003Cstrongu003E缺点:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Colu003Eu003Cliu003E入门门槛比较高,如果没有 Java Web 的开发经历很难完整理解 JSF。u003Cu002Fliu003Eu003Cu002Folu003Eu003Cpu003Eu003Cstrongu003E第三,Struts。u003Cu002Fstrongu003EStruts 是 Apache 软件基金会(ASF)赞助的一个开源项目,也是基于 MVC 模式进行设计的,但是不像 Spring MVC 那么严格遵守 MVC 模式,经常被视作一种变种。u003Cu002Fpu003Eu003Cpu003EStruts是通过一系列接口和类来实现某些特定的功能,为 Java 应用提供了网络框架。与传统的互联网功能不同,它可以创建动态响应。众人拾柴火焰高,在各个开源社区的共同努力下,Struts 才有了今天的影响。当然,Struts 常常被诟病为“万年漏洞王”,去年国内还因为新漏洞闹的沸沸扬扬,但仍然不能否定其是一个强大易用的框架。u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E优点:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Colu003Eu003Cliu003E原生支持I-18-N(即国际化,其来源是英文单词 internationalization 的首末字符i和n,18为中间的字符数);u003Cu002Fliu003Eu003Cliu003E便捷的数据有效性验证和身份验证;u003Cu002Fliu003Eu003Cliu003E支持模块化开发和集成插件。u003Cu002Fliu003Eu003Cu002Folu003Eu003Cpu003Eu003Cstrongu003E缺点:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Colu003Eu003Cliu003E灵活性不足;u003Cu002Fliu003Eu003Cliu003E安全性有待提高。u003Cu002Fliu003Eu003Cu002Folu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F15343161950362c7e0dee7d” img_width=”400″ img_height=”78″ alt=”开发大型项目必备 98%公司都在用的十佳 Java Web 应用框架” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003Eu003Cstrongu003E第四,Hibernate ORM u003Cu002Fstrongu003E也是一个不能被忽略的优秀框架, 属于使用 GNU 通用公共许可证发行的自由开源软件。Hibernate 是一套对象关系映射解决方案,能够建立面向对象模型与关系数据模型的映射。Hibernate 对 JDBC 进行了非常轻量级的对象封装,使 Java 开发人员可以随心所欲的使用对象编程思维来操纵数据库。u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E优点:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Colu003Eu003Cliu003E移植性好,只需要修改极少量的代码修改实现与其他数据库通信;u003Cu002Fliu003Eu003Cliu003E数据库不敏感,通吃MySQL, DB2 和 Oracle等主流数据库;u003Cu002Fliu003Eu003Cliu003E优秀的缓存机制(session缓存,二级缓存,查询缓存),对于那些改动不大且经常使用的数据,可以将它们放到缓存中,不必在每次使用时都去查询数据库,缓存机制对提升性能大有裨益;u003Cu002Fliu003Eu003Cliu003E延迟加载(只有等系统需要使用集合属性时才从数据库装载关联的数据)。u003Cu002Fliu003Eu003Cu002Folu003Eu003Cpu003Eu003Cstrongu003E缺点:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Colu003Eu003Cliu003E一旦断电,所有未存储就会丢失;u003Cu002Fliu003Eu003Cliu003E重启非常慢。u003Cu002Fliu003Eu003Cu002Folu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F15343162391551ebaa457c1″ img_width=”400″ img_height=”134″ alt=”开发大型项目必备 98%公司都在用的十佳 Java Web 应用框架” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003Eu003Cstrongu003E第五,GWT(Google Web Toolki) u003Cu002Fstrongu003E是一个前端使用 JavaScript,后端使用 Java 的 AJAX 框架,以 Apache 许可证2.0版本开放源码。GWT 通过编译器将 Java 代码编译成JavaScript,可以让开发人员只使用 Java 就可以快速开发维护复杂但高性能的 JavaScript ,借此减轻开发人员负担。u003Cu002Fpu003Eu003Cpu003E除了一些本地库之外,都可以用集成的 GWT Ant 将 Java 源码构建成 JavaScript。 GWT已经实现了大量代码跨平台复用,包括跨浏览器移植性、国际化、UI抽象化、书签、历史管理、远程程序调用和异步的代码。u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E优点:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Colu003Eu003Cliu003E入门容易;u003Cu002Fliu003Eu003Cliu003E特别适合应用;在想要通过增加客户端负载从而减少服务器端负载,进而提升响应速度的web应用程序;u003Cu002Fliu003Eu003Cliu003E借助各种各样的JavaScript库,开发人员可以充分利用GWT的能力;u003Cu002Fliu003Eu003Cliu003E内置IDE能够直接重构Java密文u002F代码;u003Cu002Fliu003Eu003Cliu003E由Google负责开发,前景光明。u003Cu002Fliu003Eu003Cu002Folu003Eu003Cpu003Eu003Cstrongu003E缺点:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Colu003Eu003Cliu003EGWT是一个快速迭代的项目,版本太多,可能没法知道所有接口和方法;u003Cu002Fliu003Eu003Cliu003E编译器执行效率比较慢;u003Cu002Fliu003Eu003Cliu003E定义结构的时候必须使用专用的方法来执行。u003Cu002Fliu003Eu003Cu002Folu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F153431651342858d297840f” img_width=”400″ img_height=”195″ alt=”开发大型项目必备 98%公司都在用的十佳 Java Web 应用框架” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003Eu003Cstrongu003E第六,Play 框架u003Cu002Fstrongu003E是一种基于无状态(stateless)、Web 友好和轻量级的架构,支持 Scala 和Java两种语言。它构建在 Akka (一个用 Scala 编写的分布式应用框架)上并利用了 Akka 顶部设计的完全异步模型,为可高度伸缩的应用程序分配最小和可预测的资源(比如线程数、内存和CPU)。u003Cu002Fpu003Eu003Cpu003EPlay比较友好,开发人员可以通过文本编辑器和浏览器直接进行修改。此外,尽管它是无状态的,但它的规模是可以预见的。可以说,Play 是为了因应现代移动和网络应用的需要而诞生的。u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E优点:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Colu003Eu003Cliu003E极大地提高了开发人员的生产率;u003Cu002Fliu003Eu003Cliu003E配置、模板和java代码的更改可以快速完成重载;u003Cu002Fliu003Eu003Cliu003EPlay是在Netty基础上设计的,支持异步Iu002FO;u003Cu002Fliu003Eu003Cliu003E它是开源的;u003Cu002Fliu003Eu003Cliu003E由Zenexity公司和Lightbend公司提供商业支持;u003Cu002Fliu003Eu003Cliu003EPlay可以在运行时处理错误。u003Cu002Fliu003Eu003Cu002Folu003Eu003Cpu003Eu003Cstrongu003E缺点:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Colu003Eu003Cliu003EPlay 2基本上是对Play 1的重写,比Python3.X和Python2.X的差距大多了,想想Python就知道了;u003Cu002Fliu003Eu003Cliu003E它是围绕异步Iu002FO构建的,你可能会得到一个不知名的内部类;u003Cu002Fliu003Eu003Cliu003E无论是Play框架还是Akka的中文资料少之又少。u003Cu002Fliu003Eu003Cu002Folu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F15343160935442403991da9″ img_width=”400″ img_height=”98″ alt=”开发大型项目必备 98%公司都在用的十佳 Java Web 应用框架” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003E u003Cstrongu003E第七,Vaadin u003Cu002Fstrongu003E是一个 Apache 许可的开源 Java web 应用程序项目,并拥有一个活跃的社区(https:u002Fu002Fvaadin.comu002Fforum)。用 Vaadin 开发的浏览器应用界面可以达到和桌面应用类似的效果,但和 Flash 、Silverlight 不同的是,Vaddin 应用无需在浏览器上安装任何插件。它支持纯Java开发环境,开发人员无需深入了解 HTML,XML 或是JavaScipt。如果你曾经使用 Java 开发过 Swing,SWT 等应用,可以非常容易开始使用 Vaddin 开发 Web 应用。u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E优点:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Colu003Eu003Cliu003E只需要在服务器端编程;u003Cu002Fliu003Eu003Cliu003E支持布局、侦听器和组件类型;u003Cu002Fliu003Eu003Cliu003E支持各类插件;u003Cu002Fliu003Eu003Cliu003E可以很方便地和Spring框架集成。u003Cu002Fliu003Eu003Cu002Folu003Eu003Cpu003Eu003Cstrongu003E缺点:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Colu003Eu003Cliu003E不支持多窗口;u003Cu002Fliu003Eu003Cliu003E自动创建的JS代码的不够精简。u003Cu002Fliu003Eu003Cu002Folu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F153431609462657d4e77f71″ img_width=”400″ img_height=”111″ alt=”开发大型项目必备 98%公司都在用的十佳 Java Web 应用框架” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003Eu003Cstrongu003E 第八,Grailsu003Cu002Fstrongu003E基于 Groovy 编程语言,是一个坚持己见、提倡用约定的默认设置代替复杂配置的框架。它与 JVM 很好地融合,能够在提供强大功能的同时保持高效,包括异步编程、编译时元编程、运行时和领域专用语言(DSL,专注于某个应用程序领域的计算机语言)。Grails可以透明地、无缝地与 Java、Java EE 容器和 JVM 进行互操作和集成。u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E优点:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Colu003Eu003Cliu003E处理中小型项目的理想工具;u003Cu002Fliu003Eu003Cliu003E提供一个快速的开发周期;u003Cu002Fliu003Eu003Cliu003E提供丰富的插件;u003Cu002Fliu003Eu003Cliu003E文档简单易懂的;u003Cu002Fliu003Eu003Cliu003E安装过程很简单,新手也可以在短时间内构建应用程序;u003Cu002Fliu003Eu003Cliu003EGORM(Grails ObjectRelational Mapping,Grails对象关系映射)的配置简单;u003Cu002Fliu003Eu003Cliu003E管理CSS简单;u003Cu002Fliu003Eu003Cliu003E动态配置特性,无需重新启动服务器即可更改配置。u003Cu002Fliu003Eu003Cu002Folu003Eu003Cpu003Eu003Cstrongu003E缺点:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Colu003Eu003Cliu003E依赖JVM运行环境;u003Cu002Fliu003Eu003Cliu003E多线程时候有时可能会有问题。u003Cu002Fliu003Eu003Cu002Folu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F153431609467856e3559cc8″ img_width=”400″ img_height=”84″ alt=”开发大型项目必备 98%公司都在用的十佳 Java Web 应用框架” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003E u003Cstrongu003E第九,Wicket u003Cu002Fstrongu003E又称 Apache Wicket,一看这个名字,又是一个 Apache 基金会旗下的开源框架了。Wicket 是一个基于组件的轻量级的 Java 应用程序框架。Wicket 使用遵循 XHTML 标准的命名空间来支持 HTML 模板。其特点在于对 Html 和 Java代码进行了有效的分离(有利于程序员和美工的合作),基于规则的配置(减少了 XML 等配置文件的使用)。u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E优点:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Colu003Eu003Cliu003E代码是用Java编写的;u003Cu002Fliu003Eu003Cliu003E没有XML配置文件;u003Cu002Fliu003Eu003Cliu003E没有返回键的问题;u003Cu002Fliu003Eu003Cliu003E是一种简单Java对象为中心的编程;u003Cu002Fliu003Eu003Cliu003E测试比较容易。u003Cu002Fliu003Eu003Cu002Folu003Eu003Cpu003Eu003Cstrongu003E缺点:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Colu003Eu003Cliu003E发展前景比较不明确;u003Cu002Fliu003Eu003Cliu003E基于事件的设计可能增加代码混乱的几率。u003Cu002Fliu003Eu003Cu002Folu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F1534316093812a009c5f6c1″ img_width=”400″ img_height=”110″ alt=”开发大型项目必备 98%公司都在用的十佳 Java Web 应用框架” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003Eu003Cstrongu003E第十,Vert.x框架u003Cu002Fstrongu003E是一个基于 JVM、轻量级、高性能的应用框架,基于事件驱动和异步,使用极少的核心线程里占用最小限度的硬件资源处理大量的高并发。Vert.x支持多种语言,例如Ceylon、Ruby、Groovy、JavaScript和Java,因此可以根据项目特性和团队技能灵活选择语言。u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E优点:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Colu003Eu003Cliu003E设置容易;u003Cu002Fliu003Eu003Cliu003EVert.x容器里强大的内核线程;u003Cu002Fliu003Eu003Cliu003E为异步提供简单的方法和对象。u003Cu002Fliu003Eu003Cu002Folu003Eu003Cpu003Eu003Cstrongu003E缺点:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Colu003Eu003Cliu003E 一些硬件可能无法执行;u003Cu002Fliu003Eu003Cliu003E支持语言太多,选择一门恰当的语言会让人头疼会。u003Cu002Fliu003Eu003Cu002Folu003Eu003Cpu003E 本文简要介绍了当前 10 个最主流的 Java Web 框架的各自特性和优缺点。希望能对大家未来的学习和工作有所帮助。u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E今日福利:JavaEE 框架学习资源大礼包 让你走上巅峰u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Culu003Eu003Cliu003Eu003Cstrongu003EavaEE开发之Struts2框架u003Cu002Fstrongu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cstrongu003Ehibernate框架开发u003Cu002Fstrongu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cstrongu003ESpring框架u003Cu002Fstrongu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cstrongu003ESSH框架之综合项目开发全u003Cu002Fstrongu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cstrongu003EjavaScript 高级框架设计u003Cu002Fstrongu003Eu003Cu002Fliu003Eu003Cliu003Eu003Cstrongu003E……u003Cu002Fstrongu003Eu003Cu002Fliu003Eu003Cu002Fulu003Eu003Cpu003Eu003Cstrongu003E完整资源获取方式u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003E关注“黑马程序员”,回复u003Cstrongu003E“框架“u003Cu002Fstrongu003E即可获取u003Cu002Fpu003Eu003Cu002Fdivu003E”

原文始发于:开发大型项目必备 98%公司都在用的十佳 Java Web 应用框架

主题测试文章,只做测试使用。发布者:玩家L-,转转请注明出处:http://www.cxybcw.com/27014.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code