开发大型项目必备 98%公司都在用的十佳 java web 应用框架-利来国际登录

第一,大名鼎鼎的spring mvc框架。spring mvc 框架堪称是一个教科书式的 mvc (模型model、视图view和控制器controller)框架,严格组照 mvc 模式要求进行分层设计。经过多年的发展,spring mvc 已经发展成了一个 web 应用程序的全能架构。


易用性方面, spring mvc 为 web 应用程序的开发和配置提供了有用的工具箱。扩展性方面, spring mvc 也以插件多而出名,大量优秀插件可供选择,如soap 服务、rest api 和安全认证。


优点:

  1. 强大的模块化功能,代码可读性高;

  2. 可以通过 pojo (plain ordinary java object,简单的java对象)对测试数据进行简单的注入;

  3. 可以灵活使用di(dependencyinjection,依赖注入,或者叫控制反转);

  4. 不同模块间是低耦合的(上面四点优点归根结底还是耦合度低)。


缺点:

  1. 对于新手来说,实现的难度比较大;

  2. 学习曲线比较陡峭,即入门比较难。

 

第二,jsf。它可以说是所有 java 框架中的与 java 关系最近的,因为它和java 都是 oracle 的嫡系部队。jsf 也许并算不上最好的 java 框架,但是由于 oracle 的加持,jsf 的文档是最全也最容易找到的。


此外,由于 jsf 已通过 jcp 格式化为 javaee 的一部分,所以你只要安装了 j2ee,就可以无障碍使用 jsf 了。复杂的功能也能用jsf 提供的大量工具和库来实现。借助 jsp(java server pages),jsf 还可以支持不同的 facelets 和 xul 技术。


优点:

  1. 由于 jsf 集成在 javaee 中,对于使用 ide 的开发人员来说非常方便。


缺点:

  1. 入门门槛比较高,如果没有 java web 的开发经历很难完整理解 jsf。


第三,struts。struts 是 apache 软件基金会(asf)赞助的一个开源项目,也是基于 mvc 模式进行设计的,但是不像 spring mvc 那么严格遵守 mvc 模式,经常被视作一种变种。


struts是通过一系列接口和类来实现某些特定的功能,为 java 应用提供了网络框架。与传统的互联网功能不同,它可以创建动态响应。众人拾柴火焰高,在各个开源社区的共同努力下,struts 才有了今天的影响。当然,struts 常常被诟病为“万年漏洞王”,去年国内还因为新漏洞闹的沸沸扬扬,但仍然不能否定其是一个强大易用的框架。


优点:

  1. 原生支持i-18-n(即国际化,其来源是英文单词 internationalization 的首末字符i和n,18为中间的字符数);

  2. 便捷的数据有效性验证和身份验证;

  3. 支持模块化开发和集成插件。


缺点:

  1. 灵活性不足;

  2. 安全性有待提高。

    第四,hibernate orm 也是一个不能被忽略的优秀框架, 属于使用 gnu 通用公共许可证发行的自由开源软件。hibernate 是一套对象关系映射利来国际登录的解决方案,能够建立面向对象模型与关系数据模型的映射。hibernate 对 jdbc 进行了非常轻量级的对象封装,使 java 开发人员可以随心所欲的使用对象编程思维来操纵数据库。


    优点:

    1. 移植性好,只需要修改极少量的代码修改实现与其他数据库通信;

    2. 数据库不敏感,通吃mysql, db2 和 oracle等主流数据库;

    3. 优秀的缓存机制(session缓存,二级缓存,查询缓存),对于那些改动不大且经常使用的数据,可以将它们放到缓存中,不必在每次使用时都去查询数据库,缓存机制对提升性能大有裨益;

    4. 延迟加载(只有等系统需要使用集合属性时才从数据库装载关联的数据)。


    缺点:

    1. 一旦断电,所有未存储就会丢失;

    2. 重启非常慢。


  3. 第五,gwt(google web toolki) 是一个前端使用 javascript,后端使用 java 的 ajax 框架,以 apache 许可证2.0版本开放源码。gwt 通过编译器将 java 代码编译成javascript,可以让开发人员只使用 java 就可以快速开发维护复杂但高性能的 javascript ,借此减轻开发人员负担。


    除了一些本地库之外,都可以用集成的 gwt ant 将 java 源码构建成 javascript。 gwt已经实现了大量代码跨平台复用,包括跨浏览器移植性、国际化、ui抽象化、书签、历史管理、远程程序调用和异步的代码。


    优点:

    1. 入门容易;

    2. 特别适合应用;在想要通过增加客户端负载从而减少服务器端负载,进而提升响应速度的web应用程序;

    3. 借助各种各样的javascript库,开发人员可以充分利用gwt的能力;

    4. 内置ide能够直接重构java密文/代码;

    5. 由google负责开发,前景光明。


    缺点:

    1. gwt是一个快速迭代的项目,版本太多,可能没法知道所有接口和方法;

    2. 编译器执行效率比较慢;

    3. 定义结构的时候必须使用专用的方法来执行。

    第六,play 框架是一种基于无状态(stateless)、web 友好和轻量级的架构,支持 scala 和java两种语言。它构建在 akka (一个用 scala 编写的分布式应用框架)上并利用了 akka 顶部设计的完全异步模型,为可高度伸缩的应用程序分配最小和可预测的资源(比如线程数、内存和cpu)。


    play比较友好,开发人员可以通过文本编辑器和浏览器直接进行修改。此外,尽管它是无状态的,但它的规模是可以预见的。可以说,play 是为了因应现代移动和网络应用的需要而诞生的。


    优点:

    1. 极大地提高了开发人员的生产率;

    2. 配置、模板和java代码的更改可以快速完成重载;

    3. play是在netty基础上设计的,支持异步i/o;

    4. 它是开源的;

    5. 由zenexity公司和lightbend公司提供商业支持;

    6. play可以在运行时处理错误。


    缺点:

    1. play 2基本上是对play 1的重写,比python3.x和python2.x的差距大多了,想想python就知道了;

    2. 它是围绕异步i/o构建的,你可能会得到一个不知名的内部类;

    3. 无论是play框架还是akka的中文资料少之又少。

    第七,vaadin 是一个 apache 许可的开源 java web 应用程序项目,并拥有一个活跃的社区(https://vaadin.com/forum)。用 vaadin 开发的浏览器应用界面可以达到和桌面应用类似的效果,但和 flash 、silverlight 不同的是,vaddin 应用无需在浏览器上安装任何插件。它支持纯java开发环境,开发人员无需深入了解 html,xml 或是javascipt。如果你曾经使用 java 开发过 swing,swt 等应用,可以非常容易开始使用 vaddin 开发 web 应用。


    优点:

    1. 只需要在服务器端编程;

    2. 支持布局、侦听器和组件类型;

    3. 支持各类插件;

    4. 可以很方便地和spring框架集成。


    缺点:

    1. 不支持多窗口;

    2. 自动创建的js代码的不够精简。

    第八,grails基于 groovy 编程语言,是一个坚持己见、提倡用约定的默认设置代替复杂配置的框架。它与 jvm 很好地融合,能够在提供强大功能的同时保持高效,包括异步编程、编译时元编程、运行时和领域专用语言(dsl,专注于某个应用程序领域的计算机语言)。grails可以透明地、无缝地与 java、java ee 容器和 jvm 进行互操作和集成。


    优点:

    1. 处理中小型项目的理想工具;

    2. 提供一个快速的开发周期;

    3. 提供丰富的插件;

    4. 文档简单易懂的;

    5. 安装过程很简单,新手也可以在短时间内构建应用程序;

    6. gorm(grails objectrelational mapping,grails对象关系映射)的配置简单;

    7. 管理css简单;

    8. 动态配置特性,无需重新启动服务器即可更改配置。


    缺点:

    1. 依赖jvm运行环境;

    2. 多线程时候有时可能会有问题。

    第九,wicket 又称 apache wicket,一看这个名字,又是一个 apache 基金会旗下的开源框架了。wicket 是一个基于组件的轻量级的 java 应用程序框架。wicket 使用遵循 xhtml 标准的命名空间来支持 html 模板。其特点在于对 html 和 java代码进行了有效的分离(有利于程序员和美工的合作),基于规则的配置(减少了 xml 等配置文件的使用)。


    优点:

    1. 代码是用java编写的;

    2. 没有xml配置文件;

    3. 没有返回键的问题;

    4. 是一种简单java对象为中心的编程;

    5. 测试比较容易。


    缺点:

    1. 发展前景比较不明确;

    2. 基于事件的设计可能增加代码混乱的几率。

    第十,vert.x框架是一个基于 jvm、轻量级、高性能的应用框架,基于事件驱动和异步,使用极少的核心线程里占用最小限度的硬件资源处理大量的高并发。vert.x支持多种语言,例如ceylon、ruby、groovy、javascript和java,因此可以根据项目特性和团队技能灵活选择语言。


    优点:

    1. 设置容易;

    2. vert.x容器里强大的内核线程;

    3. 为异步提供简单的方法和对象。


    缺点:

    1.  一些硬件可能无法执行;

    2. 支持语言太多,选择一门恰当的语言会让人头疼会。


返回观点列表
本文标签:

相关专题

体验从沟通开始,让我们聆听您的需求!

开始您的数字化品牌体验! 0571-85815193 期待您的来电!

[ 网站建设×品牌利来手机网址官网设计×大策略营销门户×微信小程序开发×微信公众号开发]

派迪业务总监微信号

了解最新项目报价

派迪产品经理钉钉号

免费获取项目方案

我们正使用 cookie 来改善您的访问体验

派迪科技非常重视您的个人隐私,当您访问我们的网站www.hzpady.com时,请同意使用所有cookie 。

如果您想详细了解我们如何使用cookie请访问我们的 《隐私政策》

cookie 偏好

如果您想详细了解我们如何使用cookie请访问我们的 《隐私政策》

管理cookie偏好

基本 cookie

始终允许

这些 cookie 是网站运行所必需的,不能在我们的系统中关闭。它们通常仅针对您所做的相当于服务请求的操作而设置,例如设置您的隐私首选项、登录或填写表格。您可以将浏览器设置为阻止或提醒您有关这些 cookie 的信息,但网站的某些部分将无法运行。这些 cookie 不存储任何个人身份信息。

性能 cookie

始终允许
这些 cookie 使我们能够计算访问量和流量来源,以便我们可以衡量和改进我们网站的性能。它们帮助我们了解哪些页面最受欢迎和最不受欢迎,并了解访问者如何在网站上移动。这些 cookie 收集的所有信息都是汇总的,而且是匿名的。如果您不允许这些 cookie,我们将不知道您何时访问了我们的网站,也无法监控其性能。

功能性 cookie

这些 cookie 收集信息用于分析和个性化您的定向广告体验。您可以使用此拨动开关来行使选择不获取个人信息的权利。如果您选择关闭,我们将无法向您提供个性化广告,也不会将您的个人信息交给任何第三方。

定位 cookie

这些 cookie 可能由我们的广告利来国际登录的合作伙伴通过我们的网站设置。这些公司可能会使用它们来建立您的兴趣档案,并在其他网站上向您展示相关广告。它们不直接存储个人信息,而是基于唯一标识您的浏览器和互联网设备。如果您不允许使用这些 cookie,您将体验到较少针对性的广告。

我们正使用 cookie 来改善您的访问体验

派迪科技非常重视您的个人隐私,当您访问我们的网站www.hzpady.com时,请同意使用所有cookie 。

如果您想详细了解我们如何使用cookie请访问我们的 《隐私政策》