我想知道在这两种技术方面经验丰富的人是否可以在两者之间进行客观比较,假设您正在构建一个既复杂的Web应用程序,又在服务器和浏览器中都非常丰富.

对我来说,旧范例的一个问题是Spring MVC层的可测试性.我发现由于不可测试的注释,有很多错误可能会蔓延到您的应用程序中.此模型也会减慢开发周期,因为您必须重新启动服务器以更改注释/控制器代码…这是我个人觉得很烦人的事情.

我也不想处理javascript的复杂性.使用Java处理和测试应用程序听起来很吸引我.我真的不想掌握另一种语言,并且学习它的所有怪癖,奇怪的设计决策,特质以及浏览器不兼容的完整历史.

那么对于复杂的应用程序,GWT会提供更好的方法吗?这种方法是否比Spring MVC有任何严重的限制,虽然更难以使用,但它可能更灵活?是否存在构建复杂应用程序常见的陷阱和路障?

我真的很感激两者之间的比较.请记住,我没有GWT的经验,但有大约10年的Spring经验.谢谢!

解决方法

事实上,GWT也有一个学习曲线,至少在我看到它的时候,两年前,你没有做很多基本控制,你需要外部库,这意味着更多的学习.

在尝试学习GWT但没有取得多大成功之后,我选择了一个web服务加上jQuery或ExtJS,这也给了角色非常清晰的分离.我坐下来学习JavaScript,这并不容易,但它比使用GWT更有趣.

至于浏览器兼容性,一旦你使用现代库,你将只有很少的.我的代码适用于所有浏览器,没有太多问题,包括IE 6.此外,当我太忙时,我只编写服务并外包JavaScript接口部分,这样可以提高工作效率.

无论如何,这是相当主观的,另一个精通GWT的人,可能与我的观点截然相反.反正我会拒绝以下原因:

>易于调试.不再那样了:使用FireBug调试JavaScript非常容易,而且JavaScript中没有任何业务逻辑,只有服务调用和显示.
>浏览器兼容性.要记住的怪癖很少,最常见的是IE不接受列表中的尾随逗号,无论如何不在标准中,但Firefox容忍它们.任何现代JavaScript库都会为您提供兼容性.
>速度.首先,我将说明JavaScript在浏览器中的任何合理计算都非常快.更慢的是DOM操作,当然还有涉及网络的任何事情,比如AJAX调用.如果您不做设计错误,例如填充太多内容或在将多个元素直接添加到DOM时可能出现的其他问题,而不是构建您的结构然后立即附加它,那么您的页面将正常运行.

据我所知,唯一合理的原因是,我已经了解Java,我不想学习另一种语言.

至于你对Spring MVC的评论.我正在使用Spring MVC,我感觉不到重启服务器的痛苦. Spring的重点是,一切都应该易于在容器外工作!在Spring控制器中,我只需要调用底层服务的代码非常少.我需要单元测试的是服务.

控制器只有很少的代码可以测试,我可以调用它们并在JUnit中测试它们,但是,至少现在,我的方法是通过一个带有jQuery调用的网页完成一个简单的外部测试来检查它们的响应(它不是单元测试,这是一个集成测试,但我觉得单元测试控制器的价值非常小,如果它写得正确的话.

java – GWT和Spring MVC之间的比较的更多相关文章

  1. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  2. HTML5数字输入仅接受整数的实现代码

    这篇文章主要介绍了HTML5数字输入仅接受整数的实现代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  3. amaze ui 的使用详细教程

    这篇文章主要介绍了amaze ui 的使用详细教程,本文通过多种方法给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  4. html5简介_动力节点Java学院整理

    这篇文章主要介绍了html5简介,用于指定构建网页的元素,这些元素中的大多数都用于描述网页内容,有兴趣的可以了解一下

  5. ios 8 Homescreen webapp,关闭和打开iPad停止javascript

    我有一个适用于iPad的全屏HTML5网络应用程序,并且刚刚安装了IOS8来试用它,它一切正常,直到你关闭并重新启动iPad.一旦web应用程序重新启动javascript就会停止并加载新页面不会重新启动它.在iPad上的Safari中打开同一页面时,关闭和打开iPad会继续按预期工作.其他人注意到了这个或想出了一个解决方案吗?解决方法这似乎是我在iOS8.1.1更新中解决的.

  6. iOS 6 javascript与object.defineProperty的间歇性问题

    当访问使用较新的Object.defineProperty语法定义属性的对象的属性时,有没有其他人注意到新iOS6javascript引擎中的间歇性错误/问题?https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/defineProperty我正在看到javascript失败的情况,说

  7. ios – 如何使用JSExport导出内部类的方法

    解决方法似乎没有办法将内部类函数导出到javascript.我将内部类移出并创建了独立的类,它起作用了.

  8. 静音iOS推送通知与React Native应用程序在后台

    我有一个ReactNative应用程序,我试图获得一个发送到JavaScript处理程序的静默iOS推送通知.我看到的行为是AppDelegate中的didReceiveRemoteNotification函数被调用,但是我的JavaScript中的处理程序不会被调用,除非应用程序在前台,或者最近才被关闭.我很困惑的事情显然是应用程序正在被唤醒,并且它的didReceiveRemoteNotifi

  9. ios – 内存泄漏与UIWebView和Javascript

    清楚地包含一个Javascript文件到我的HTML是使UIWebView泄漏内存.当我重复使用相同的UIWebView对象时,或者每当我有内容实例化一个新的漏洞时,会出现泄漏的事实,导致我认为必须有一些JavaScript文件被loadHTMLString处理,导致泄漏.有人知道如何解决这个问题吗?

  10. iOS应用程序的UI自动化测试如何与乐器和Javascript

    从WWDC2010视频会议中了解iOS应用程序的自动化UI测试,但没有实践.从代码项目project,我们可以有一个例子.这个问题在这里听到有涉及这个的人.任何限制?解决方法我建议从AlexWollmer开始使用thisblogpost.他创建了一个非常有用的JavaScript库:tuneup_jswithtest()函数,它允许测试分离和有用的帮助者以及为自动化仪器编写测试的断言.

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部