【问题标题】:Lift framework with java用java提升框架
【发布时间】:2013-02-25 13:02:05
【问题描述】:

我正在构建一个需要高性能的 Web 应用程序。我打算使用 Java EE,但在研究之后,有很多关于 Java EE 应用程序的负面评价。

我在考虑Lift框架,但是好像Lift只支持Scala,我只懂Java。 Lift 真的支持 Java 吗? (我找不到任何使用 Lift 和 java 的项目示例)。我下载了一个 Lift 框架项目应用程序,其中有一个启动文件,我们可以创建一个相同的启动文件,但要使用 Java 吗?

【问题讨论】:

    标签: java scala jakarta-ee lift


    【解决方案1】:

    我很确定 Lift 只是 Scala。如果您正在寻找高性能和 Java,那么您应该查看Play Framework,因为它还具有不需要部署 Servlet 容器的好处。

    【讨论】:

    • 我不太了解 Zoo Keeper,但我一直认为它与后端无关
    【解决方案2】:

    Lift 框架仅适用于 Scala。我想指出,根据我的经验,从 Java 到 Scala 的过渡并不难,现在我知道了,有许多语言特性可以让我更轻松、更快速地进行开发。您可以查看本指南以在语言之间进行转换:http://www.scala-lang.org/node/960,看看它是否适合您。根据经验,我真的很喜欢使用 Lift 框架,因为它提供了很多性能和功能。文档有点缺乏,但社区很棒,如果您遇到困难,可以弥补这一点。

    对于具有负 cmets 的 Java EE,这有点含糊。 Java EE 规范包括从 Servlet 到 JSF 和 EJB 的所有内容。您几乎可以在任何 Web 框架(包括 Lift)中找到部分规范,而其他部分则更专业。例如,JSF 有很多开销,但试图简化很多典型的应用程序生命周期。 EJB 类似地尝试通过对象关系管理 (ORM) 来简化持久层。

    大多数框架都可以实现高性能网站,但其中很多取决于您如何开发它。此外,因为框架支持它并不意味着您需要使用特定的组件。 Spring (http://www.springsource.org/) 是许多人在高性能站点上使用的框架,并且具有令人难以置信的可配置性(支持 EJB 和 JSF,但您不需要使用它)。此外,Wicket (http://wicket.apache.org/) 是一个 Java 框架,它提供与 Lift 类似的感觉,您可能会感兴趣。

    【讨论】:

    • > EJB 类似地尝试通过对象关系管理 (ORM) 来简化持久层。 - 这并不完全正确。当前版本的 EJB 中没有 ORM 功能。 EJB 简化了 JPA 的使用,它是一个 ORM,但它本身与 ORM 无关,并且不再包含任何 ORM 代码。
    • >JSF 例如有很多开销 - 那么这个开销到底在哪里?和什么相比?上次我查看 JSF 的性能稍好一些,会话占用空间也比 Wicket 小。
    • 我的观点是,通常大多数这样的抽象层都会增加开销,但这并不是 J2EE 规范的全部内容。关于 EJB,您是正确的 EJB 不再提供 ORM。关于 JSF,根据我的经验,6 个生命周期阶段为我们的应用程序增加了性能开销——虽然可以解决,但通常比替代框架需要更多的资源。至于 Wicket,我提到它确实是一个类似于 Lift 的框架。
    • 其实Wicket在很多方面都和JSF很相似。这 6 个生命周期阶段所做的事情是所有其他 Web 应用程序或框架所做的事情,即从某个地方获取模板、从请求中获取值、转换和验证这些值、调用一些业务逻辑然后呈现结果。如果没有发布任何值,它只是获取一个模板并呈现它。其他 Web 框架是否也不能做到这一点?
    • 当然,其他框架具有执行该功能的方法,尽管通常不是那么简单。 JSF 旨在提供一种简单、标准的方式来处理该过程。例如,验证就像将验证器传递给输入标签一样简单,但这会产生开销,并且会产生开销。您是对的,其他人提供了该功能,但他们不一定必须经历反序列化对象阶段、验证阶段,然后是错误处理等等。您拥有的控制越多,设置就越复杂,但您对性能的控制就越大。
    【解决方案3】:

    我现在只使用 Lift 一年,并且从来没有真正对它是否会从 java 运行感兴趣(无论如何我想学习新的有效概念)。 所以,我并不完全了解这个主题。但我可以肯定的是,Liftweb 几乎在所有地方都有 Java 方法来支持 Java。所以,你可以构建你的应用程序,如果不是完全用 java ,那么它的大部分。 证明链接是这样的: http://main.scala-tools.org/mvnsites/liftweb-2.4-M4/net/liftweb/actor/LiftActorJ.html 通过添加 java 可接受的方法名称等来添加对 java 的支持的类。这些类的末尾通常有一个“J”字母。

    无论如何,我建议也尝试一下 Scala——它很棒。而且即使你只使用 java ——你也可能会习惯 Scala,因为你有时可能想阅读源代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-02
      • 1970-01-01
      • 2010-10-20
      • 1970-01-01
      • 1970-01-01
      • 2012-03-12
      相关资源
      最近更新 更多