GWT与Spring MVC的比较

ege*_*ari 6 java gwt spring spring-mvc

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

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

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

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

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

sti*_*vlo 4

事实上,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 中测试它们,但是,至少现在,我的方法是通过带有 jQ​​uery 调用的网页完成简单的外部测试,以检查它们的响应(这不是单元测试,它是一个集成测试,但我觉得如果编写正确的话,对控制器进行单元测试的价值很小)。