检票口还是游戏框架?

2022-09-01 18:03:02

我对Java Web开发完全陌生,我想选择一个好的Java Web框架来学习。我发现了一些关于Apache Wicket框架Playframework的非常好的回声。我决定去其中一个;但我需要选择;-)

那么,选择什么,为什么呢?

编辑

我的要求:

  • 我有一个很好的开发Django的经验,所以类似的框架会很棒,
  • 我需要一个可以与其他主流Java好东西(库,工具..等等),所以我可以利用Java真正提供的东西。

答案 1

Wicket和Play是两种截然不同的框架类型。

Play是一个MVC框架,你可能会对Django感到熟悉。像Django一样,它提供的不仅仅是Web位,还提供了基于JPA的ORM框架,脚手架工具,可能还有更多(我没有实际经验)。他们在他们的网站上有一个很棒的教程,你可能会在那里看到Django的相似之处。

Wicket是一个面向组件的框架(如JSF和Tapestry),主要关注面向对象的设计。它本身也是MVC,但页面通常是通过组合自包含和可重用的组件(视图和控制器,可插拔模型)来构建的。这些组件可以通过标准的继承和组合进行扩展,并且标记与代码非常干净地分离并且易于修改。

Wicket可以自动管理事件回调和状态,因此无论您的页面有多复杂,您都不必考虑url。一个可点击按钮的快速示例,当它被点击时会消失(非常有用):

  // In a page constructor
  add(new Link("link") {
        public void onClick() {
          setVisible(false);
        }
    });

我想强调的是,您不必使用服务器端状态,并且如果您愿意,完全可以使用Wicket作为“普通”MVC框架(是的,很容易获得漂亮的URL)。

Wicket项目只关注核心Web框架,没有额外的“细节”,例如特殊的ORM支持或脚手架。我个人同意 Wicket 项目的理念,但对于即将进入框架的新开发人员来说,做一些“简单”的东西,比如可排序和可分页的表,可能会有点令人生畏,因为预构建的组件有点稀缺。Wicket的学习和生产力曲线可能有点陡峭,但好处是,一旦你制作了符合你需求的组件(和“行为” - 更长的故事),它们就非常可重用。

虽然我个人喜欢Wicket,但我有一种预感,你可能最好选择Play。你的问题表明你想要一个可以访问Java库的“Django”,在这种情况下,我认为Play(或其他Java MVC)是安全的选择。另一方面,也许你一直在使用Django,因为你不知道Wicket有多强大。;)如果您提供有关项目的更多信息,我们将能够给出更合格的回复。

作为一个侧节点:由于Play不是很主流(至少目前是这样),我也会考虑Grails,它有强大的商业支持,甚至更多开箱即用的模块。


答案 2

玩!旨在为来自Python和PHP等脚本语言的开发人员提供舒适感。它提供了自己的构建系统和管理脚本,有点像Rails或Django。现有的构建工具和基础设施(如Java-land中通常用于依赖关系管理的Maven存储库)将无法与Play很好地集成。

对于来自Java桌面开发的开发人员来说,Wicket将更加舒适。它不提供特殊的工具,因此如果您有偏好,可以更轻松地集成到特定的构建工具中(并且有许多构建工具提供Java生态系统中可用的自动依赖项检索之类的功能)。

因此,这两个选项之间存在很大差异:)如果你能弄清楚哪种经验对你最有利,那么从那里开始,决定应该很清楚。


推荐