【问题标题】:Which java web framework to learn? [closed]学习哪个java web框架? [关闭]
【发布时间】:2009-10-08 16:12:01
【问题描述】:

我对学习 java web 开发框架很感兴趣,我正在寻找一些关于我应该学习的建议/建议(以及为什么)。

理想情况下,我希望框架:

  1. 基于 MVC。
  2. 如果有任何配置,请尽量减少
  3. 有一个易于使用的 ORM
  4. 拥有良好的会话管理
  5. 易于取货

我对 pylons 和 django 很熟悉,所以如果有类似于其中任何一个的 java 框架,那么我会对它特别感兴趣。

谢谢。


结论:

首先,我要感谢那些花时间分享他们的见解的人。在过去的几周里,我尝试了 Spring MVC、Wicket 和 Stripes。最终,出于《公民不服从》中描述的所有原因,我选择了 Stripes;令人惊讶的是,他的任何陈述都没有被证明是双曲线的。结合 Stripes,我正在使用 JPA/Hibernate。我担心的一个问题是,与 Struts2、JSF 等相比,Stripes 社区似乎相对“小”。虽然它可能相对较小,但社区非常易于访问、友好和乐于助人。

最后,虽然我没有试用 Grails,但我确实对其进行了研究,它看起来非常有趣/很有希望。据我所见,Groovy 语法看起来与 python 非常相似(因为我熟悉 python,这将使我更容易学习),而 Grails 框架本身似乎是一个 RAD 框架,可与 Rails、Django 相媲美/塔架。我当然计划进一步研究并(在不久的将来)最终学习 groovy/grails。

【问题讨论】:

  • 你一定要检查 PlayFramework。就可用性和性能而言,它是最好的 MVC 类型 Web 框架。 Play 到 Java 就像 Django 到 Python 和 Rails 到 Ruby,但最重要的是 Play 有更好的性能。此外,还支持 Scala,它在语言级别提供了非常好的功能

标签: java jakarta-ee frameworks


【解决方案1】:

Grails 可能就是您要找的。它在Groovy(一种更流行的基于 JVM 的语言)上运行。

它使用按约定编码的方法,因此几乎没有配置。

它是 MVC-based 并有自己的 ORM(称为 GORM),但您可以插入 Hibernate(可能是最流行的 Java ORM)。

【讨论】:

  • +1 - 我从未使用过 Grails,但从我所看到的文档来看,它似乎符合 Dan 的要求。顺便说一句,一旦 Grails 启动并运行,您似乎可以用 Java、Groovy 或(可能)任何其他 JVM 语言为它编写代码。
  • 没错。当您使用 Groovy 时,您可以插入 any Java 类(通过 any 其他 JVM 兼容语言创建)
  • Grails +1,IMO 是 Java 程序员的绝佳选择
【解决方案2】:

Stripes 毫无疑问是我有幸使用过的最好和最简单的 Java 框架。解决您的每个要求:

基于 MVC。

在旁观者的眼中,MVC 有点像——至少,这在很大程度上取决于您如何设计代码结构。但是,是的,将 MVC 项目结构与 Stripes 结合使用非常简单。

如果有任何配置,请尽量减少

这就是 Stripes 大放异彩的地方。要启动并运行,您只需在 web.xml 中添加几行代码。其他一切都是自动连接的。 Stripes 的美妙之处在于,如果您愿意,一切都可以轻松覆盖。

有一个易于使用的 ORM

Stripernate 是一个流行的框架扩展,同样可以自动运行。

拥有良好的会话管理

就像在字段上添加@Session 注释一样简单。或者,如果需要,您可以将整个 ActionBean 持久保存在会话中。 Stripes 内置了对Wizards 的支持,因此您不必担心跨请求保留状态。

容易上手

这是 Stripes 最强的套装。更不用说,Wiki 记录得非常好。

此外,Stripes 还内置了对layout templateslocalizationAJAX 和其他一些东西的支持。与某些需要数十个巨大 JAR 的框架(咳...Tapestry)不同,整个框架是一个大小不到 500 KB 的单个 JAR。

【讨论】:

    【解决方案3】:

    祝你好运。你问的问题大致类似于“我想要一个烤牛肉三明治,用鸡肉做的”。 Java 中可用的框架往往配置繁重,而且有点难学。

    也就是说,以下是我的建议:

    1. MVC Based -- Spring MVC 或 JSF,两者都不是特别容易学习。我没有使用任何其他 MVC Web 框架(Wicket、Tapestry 等),因此可能需要其他人来权衡一下。
    2. Minimal Configuration -- 你最好的选择是带有注解的 Spring MVC。但这是 Java —— 配置地狱就是游戏的名称。
    3. 易于使用的 ORM -- 我不确定您在其他语言中使用过什么,但在 Java 中 ORM 并没有融入 MVC 框架。对于易于使用的 ORM,最好的选择是在 Hibernate 之上的 JPA,特别是如果您为 MyEclipse 支付 60 美元。 MyEclipse 中的 JPA 实现本身就值得投资。它并不完美,只是比我见过的任何东西都好。
    4. 进行体面的会话管理 -- 任君选择。自 90 年代后期以来,J2EE 容器管理的会话数量超过了您可能需要的数量。
    5. 易于取货 -- 没有想到的。就像 Java 作为一门语言一样简单,与之相关的 Web 工具往往是最让新手感到不安的。学习 JSP 并远离 JSF,因为它有一个古怪的生命周期,往往会隐藏您真正想知道的错误。

    祝你好运!

    编辑:我从未使用过 Grails,但我必须同意 Brian 和 Nathan 的观点,即它看起来最适合您的需求。

    【讨论】:

    • 虽然不是一个“完整”的框架,但我确实发现 Guice 2.0 servlet 配置内容极少且易于上手。
    • 我不知道:“......一个用鸡肉制成的烤牛肉三明治”,但在德克萨斯,你可以买到“炸鸡牛排” :-) 感谢各位领导-使用 ORM - JPA/Hibernate 相对容易上手。
    【解决方案4】:

    【讨论】:

      【解决方案5】:

      我最喜欢的是条纹框架。 www.stripesframework.org。非常简单灵活。抱歉没有注意到 orm 组件。你需要一个单独的 ORM,比如 hibernate。

      但是,grails 确实包含您的整个列表。

      【讨论】:

        【解决方案6】:

        您可以尝试 Wicket 和挂毯。这些是功能更强大的框架。两者都建立在不同的理念之上。

        【讨论】:

          【解决方案7】:

          我相信Spring Web MVC会满足你的要求。

          Spring About Page

          【讨论】:

          • -1;没有提到 Spring 的哪一部分
          • 认为可以从问题中推断出来,但已为您解决。
          【解决方案8】:

          既然您说您想要一个“Java”网络框架,我推荐 Wicket、GWT 或 RAP。

          Wicket 是一个非常简单的“裸机”框架,其中所有逻辑都在 Java 中(而不是像在 Struts、JSF 或其他此类框架中那样在 Java 和 JSP 之间进行拆分)。它也是面向组件的,这意味着您可以在不同的页面中重用相同的 GUI 组件(无论是简单的还是复合的)。最后,Wicket 允许使用 AJAX,同时仍然不需要你的整个页面都用 Javascript 编写(例如,extjs 需要)

          GWT 和 RAP 都是“java 到 javascript 编译器”。您使用常规 Java 编写代码,包括客户端交互的逻辑(响应单击、拖动等),框架将代码编译为在客户端上运行并在需要时与服务器交互的 javascript。 GWT(来自google)基于swing模型,而RAP(来自eclipse)基于Eclipse的RCP模型(比swing丰富得多)。

          Wicket 和 GWT/RAP 的主要区别在于 wicket 更倾向于编写“老派”网站(例如,stackoverflow 是老派 - 页面、表单,带有一点 ajax),而 GWT/RAP 是用于编写 RIA 应用程序(其中有许多具有复杂交互的小部件)。

          最后,对于“开箱即用”的替代方案,请查看 extjs、cappucino 和 java web start

          【讨论】:

            【解决方案9】:

            你可以试试Tapestry 5。它是一个基于 MVC 的、基于组件的 Web 框架,配置几乎为零(约定优于配置,类似于 Ruby on Rails)。例如,它比 JSF 更容易学习(JSF 是另一个基于组件的框架)。

            Tapestry 5 有许多开箱即用的组件,并且与 Hibernate (ORM) 和 Struts(中间件)轻松、干净地集成。哦,实时重新加载功能令人印象深刻。

            【讨论】:

              【解决方案10】:

              哈姆雷特怎么样?

              Hamlets(以前称为基于 IBM Servlet 的内容创建框架)是由 IBM 的 René Pawlitzek 开发的用于生成动态网页的开源系统。 Hamlet 是一个 servlet 扩展,它使用 SAX(XML 的简单 API)读取包含演示文稿的 XHTML 模板文件,并使用一小组回调函数动态地将内容动态添加到模板中标有特殊标签和 ID 的位置.可以使用模板编译器来加速 Hamlets。

              Hamlets 提供了一个易于使用、易于理解、轻量级、占用空间小、基于 servlet 的内容创建框架,有助于开发基于 Web 的应用程序。 Hamlets 框架不仅支持而且强制实现内容和表示的完全分离。这是彻底的软件简化工作的结果。

              【讨论】:

              【解决方案11】:

              我强烈推荐使用 ZK。我已经将它用于许多项目,并发现它非常高效和可靠。它不断更新,新版本(我认为是 5.0)包括以服务器为中心的架构和自定义客户端的能力。

              ZK 5 具有 jQuery 集成,如果您想使用 Javascript,您可以使用它,尽管这是 完全可选。我还读到 GWT 将被实现,以便使用 Java 提供完整的客户端定制。

              它满足您的 5 条标准,也可以与 Grails (see here) 结合使用。以下是一些帮助您入门的链接:

              希望这些对你有帮助!

              【讨论】:

              • 我想补充一点:“将 ZK 与 Grails 一起使用!您将获得两者的好处!” :-)
              【解决方案12】:

              如果 JSF + Hibernate + AJAX(可选 + EJB)听起来很适合你,那么看看 Seam。

              也可以在这里查看:

              http://gokhan.ozar.net/best-java-web-frameworks/

              【讨论】:

                猜你喜欢
                • 2011-12-06
                • 2010-10-13
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2022-01-05
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多