【问题标题】:Is there a good Java back end platform/library/framework that keeps back and front ends loosely coupled?是否有一个好的 Java 后端平台/库/框架可以保持后端和前端松散耦合?
【发布时间】:2011-01-07 19:07:30
【问题描述】:

从前端/UI 开发人员的角度来看,最近的 asp.net MVC 经验大大减少了我对 .NET 的厌恶。 Java 中是否有类似的东西,或者我只是模糊地理解为为了某种多任务处理性能而做 CGI 以外的其他事情总是需要与 HTML 紧密耦合的 servlet/portlet 业务?

如果没有,我需要阅读哪些内容来帮助用 Java 编写一些东西来实现这一点?罪魁祸首是某个受欢迎的图书馆吗?

另外,如果这些神秘的 n-let 可以提高性能,为什么这么多 Java 网站在我看来加载时间变慢了?

【问题讨论】:

  • servlet 没有什么神秘之处,只是您不了解它们。您最好不要仅仅因为您对此一无所知而使用含糊的反 Java 修辞。
  • 我想看看支持“慢”的数据。而且我还希望看到对非 Java 站点及其加载时间的调查,以证明这一断言的事实。大多数情况下,这听起来像是主观的、未经证实的抱怨。
  • 也许我们可以说服亚马逊只使用 RoR、Django、ASP.net 以及各种 JAVA 和 JSP 解决方案中的原始开发人员来重写网站,这样我们才能尽可能公平。或者,鉴于我们对某事的经验有限,也许我们可以推测一下似乎是一种趋势,并希望找出是否存在一些常见的陷阱或误解,以避免在感知到的性能问题上避免被指责抱怨。

标签: java model-view-controller loose-coupling


【解决方案1】:

Struts、Java Server Facelets,比我想列出的更多 MVC、MVVM 和任何其他目前流行的模式通常都有一个 Java 版本在某个地方浮动,具有一定程度的有用性或实用性(有些好有些坏在世界其他地方)。

阅读模式和基础计算机科学。也许去阅读大量的 RFC 路线,因为这条路人迹罕至,会给你提供超出你最疯狂梦想的信息,让你在普通程序员看来是不可思议的。完成此操作后,实现 MVC 模式等解耦系统似乎很简单。

许多 Java 网站的加载时间似乎较慢,原因有多种,主要包括 1) 管理不善 2) 编码不善 3) 首次访问时的 JSP 编译时间(即阅读 JSP 的工作原理)。

无论如何,我希望这个答案会有所帮助。

【讨论】:

  • 谢谢。在某些情况下,人才水平/糟糕的选择肯定会影响我的印象,但我并不是在所有情况下都直接与开发人员合作。
【解决方案2】:

我不确定你所说的与前端的“紧密耦合”是什么意思。

Servlet 不需要总是要求它们知道调用它们的客户端。但是他们必须就要来回发送的东西达成一致。将两者完全分离的一种方法是使用商定的有线协议,无论是基于 REST 的 HTTP 或 XML 还是 - 可怕的 - SOAP。消息是交换的,但生产和消费的细节是相互隐藏的。

如果您使用我衷心支持的 Spring,那么您不必被 JSP 所束缚。 Spring Web 服务和 Velocity 生成的视图是其他选择。

【讨论】:

  • 我的意思是必须在选择与一个基于 Java 的团队合作后重新做模板,他们希望他们选择的库就是这样。这已经发生了几次,但我当然意识到 A)在 UI 开发人员完成之前不让你的 UI 开发人员与你的后端开发人员交谈是愚蠢的(不是我控制的)和 B)基于 Java 是一个非常用粗刷来抚摸。感谢您的提示。我将研究 Spring。
【解决方案3】:

看看JSF 2.0,可能与Spring结合使用。

另一方面,看看Spring MVC (3.0),它不支持像JSF(我认为是.asp)这样的组件样式,但它是一个非常好的MVC框架。

【讨论】:

  • “看看 JSF 2.0,可能与 Spring 结合使用。” - 请您详细说明一下您的声明。你的意思是在一个应用中有JSF 2.0和Spring结合的体验吗?
  • @Dima:如果你有一个(concreate)问题,不要害羞,问它。
【解决方案4】:

我经常使用的框架是 Spring MVC。让您将视图 (JSP) 与业务逻辑分开是一项合理的工作。

编辑:仅 JSP 是不够的。可以将所有逻辑放到一个 JSP 中——可以创建一个新的数据库连接,获取一些行,执行一些逻辑,然后显示它们。 这是一个非常糟糕的主意。 通过使用 Spring MVC(或其他 MVC 框架 - 可能还有其他框架),您可以分离业务逻辑(模型)和用户对事物的看法(视图)以及获取数据并将所有内容连接在一起的逻辑(控制器)。

【讨论】:

  • 那么 JSP 本身并不能完成这项工作?
  • @Dima,我认为关键在于 JSP 毫无意义地臃肿,但该框架使得人们不太可能将所有逻辑转储到页面上。
猜你喜欢
  • 2016-02-04
  • 1970-01-01
  • 2018-10-10
  • 1970-01-01
  • 2021-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-21
相关资源
最近更新 更多