什么是满足我需求的最佳Java Web框架?

时间:2010-06-20 19:34:02

标签: java frameworks

我正在为公司内部网创建一个Web应用程序,因为该系统的其他部分是用Java编写的,因此为了集成,Java被选为Web前端。

有要求:

  • 必须在短时间内学会简单
  • 它必须支持MVC模式
  • 没有扩展的xml配置
  • 应用程序将包含许多用户将填写的表单,以及一些帮助它的js
  • 有助于开发的好IDE插件

我在考虑Wicket / Spring MVC / Stripes

您对这些要求有何建议?我应该看看哪些其他框架可能对我的应用程序更好?

另外:你能否评论这三个框架如何满足我的要求?

13 个答案:

答案 0 :(得分:16)

查看Grails;它是Rails和Java中最好的。优秀的MVC(包括ORM),DRY和按惯例编码(没有XML配置!),非常类似于Rails,但在某些方面甚至更好(恕我直言),加上Java平台的所有稳定性和访问所有的优秀的图书馆。

它使用基于JVM的Groovy脚本语言,但学习曲线对于Java开发人员来说不应该太糟糕;如果需要,您也可以使用直接Java代码。

答案 1 :(得分:14)

基于此要求:

  

必须在短时间内学会简单

我不推荐使用Spring类型的框架,因为你必须学习很多关于模块的知识。

看看Play java framework。该结构与Ruby On Rails非常相似,但使用Java编写。 Scala也受支持。最好的好处之一是自动编译。在您的本地开发人员,您可以更新代码,刷新浏览器并立即查看更改。

通过采用无状态模型以实现更轻松的可伸缩性,它在其他Java框架中也是独一无二的。

答案 2 :(得分:8)

使用播放!框架 :)。这是一个真正的RAD框架,易于学习。

答案 3 :(得分:5)

我会使用Wicket,它没有XML配置。它干净而且相对容易学习。如果您不是XML的忠实粉丝,请不要使用Spring MVC。 Spring可以用Java配置 - 理论上。但实际上,您最终会使用详细的XML配置它。另一个缺点是Spring MVC比它必须更灵活,这意味着你需要学习的东西比你真正需要的还多。

答案 4 :(得分:3)

查看play框架并浏览教程。当我不得不/想要编写一个Web应用程序时,我很确定我会回到这个框架。

答案 5 :(得分:3)

我可以推荐 Wicket 。这很难学,但是你会爱上它。这是我真正喜欢使用的第一个Web框架。

请注意,Wicket不适合快速和肮脏的解决方案。只有当您喜欢干净且优雅的解决方案时才使用它,并且您已准备好投入+ 10%的时间来获得出色的代码可重用性和可读性。

我的意思是,例如,没有快速<%if(...){%> ...<%}%>在Wicket。

嗯...阅读一些不错的教程,你会明白我的观点。这是我简单的资源清单: http://ondra.zizka.cz/stranky/programovani/java/web/wicket/index.texy

答案 6 :(得分:3)

我已经使用Wicket构建了许多不同大小的Web应用程序。

与大多数其他Web框架相比,Wicket采用了一种截然不同的方法。如果您有使用Swing构建Java应用程序的经验,那么构建Wicket组件可能看起来很熟悉。推动我在Wicket和其他一些框架(Struts 2倾向于另一个框架)之间做出选择的主要因素是Web应用程序的“状态良好”。如果页面是有状态的,Wicket很棒。如果没有,它增加的值IMO会显着下降。 Wicket中我最喜欢的部分之一是它将代码与标记分开的方式,以及.html文件如何扩展另一个文件。我还没有真正研究使用Wicket构建一个非常“ajaxy”的Web应用程序的最佳实践 - 到目前为止,我与JavaScript框架集成的经验非常笨拙。

在不了解更多有关背景的情况下,很难说Wicket在短时间内是否易于学习。我也没有使用任何IDE插件,也没有我觉得需要这样的插件。列表上的其他项目 - 检查!

答案 7 :(得分:2)

也许Spring Roo?当您主要关于表单和报告时,它的效果非常好。

作为替代方案,我可以向您推荐Grails,但在将其与您当前的Java代码集成时可能会有一些复杂的情况。

答案 8 :(得分:2)

我已经非常成功地构建了一个小型内部公司应用程序。在Clojure中使用Compojure框架。如果您愿意学习Clojure,这是一个非常简单和优雅的框架,可以满足您的需求。

来自Compojure Wiki的实现简单计算器的示例代码:

(ns example 
  (:use compojure)) 

(defn html-doc 
  [title & body] 
  (html 
    (doctype :html4) 
    [:html 
      [:head 
        [:title title]] 
      [:body 
       [:div 
    [:h2 
     ;; Pass a map as the first argument to be set as attributes of the element
     [:a {:href "/"} "Home"]]]
        body]])) 


(def sum-form 
  (html-doc "Sum" 
    (form-to [:post "/"] 
      (text-field {:size 3} :x) 
      "+" 
      (text-field {:size 3} :y) 
      (submit-button "=")))) 

(defn result 
  [x y] 
  (let [x (Integer/parseInt x) 
        y (Integer/parseInt y)] 
    (html-doc "Result" 
      x " + " y " = " (+ x y)))) 

(defroutes webservice
  (GET "/" 
    sum-form) 
  (POST "/" 
    (result (params :x) (params :y)))) 

(run-server {:port 8080} 
  "/*" (servlet webservice))

答案 9 :(得分:2)

尝试使用HybridJava。

  
      
  • 必须在短时间内学会简单      
        
    • 简单就像其他一样。约15页的文档。
    •   
  •   
  • 它必须支持MVC模式      
        
    • 它支持MVC组件的模式,而不仅仅是页面。没有类似的东西。
    •   
  •   
  • 没有扩展的xml配置      
        
    • 它没有配置。没有xml,没有注释,没有属性。
    •   
  •   
  • 应用程序将包含许多用户将填写的表单,以及一些js      
        
    • 它提供的代码重用机制远远优于JSP
    •   
  •   
  • 良好的IDE插件,有助于开发      
        
    • IDE插件还没有准备好,但可能你甚至都不需要它们。
    •   
  •   

答案 10 :(得分:2)

Play框架可以统治java世界。它结合了最好的django / rails / php和java / scala。 Simplicty是关键,它是如此简单和强大,类型安全,高性能,无状态,具有完美的模块系统,具有良好的tempalte系统和国际化的mvc架构,即时支持和错误修复,无需使用应用程序服务器,轨道并动态编译后台的代码更改,最先进的单元测试和jpa集成,有crud,db版本,spring,guice,mongodb和数十个模块,附带缓存,日志记录,...和儿子...... / p>

答案 11 :(得分:0)

jsp和servlet是基本技术,如果你想使用Spring MVC或struts,你必须掌握servlet技术。你可以使用jsp和servlet来制作MVC模式,jsp是View,servlet是Controller,其他业务逻辑是Model。它必须在短时间内学习,并且使用其他MVC框架会很有帮助。

答案 12 :(得分:-1)

java开发的最佳框架是JRapid!

我在一个月前尝试了它,它很棒,现在它甚至更好,它们已经改进了错误并且运行没有问题。

你可以做不同的事情;动作可用于您可以在可自定义行为中想象的所有内容。

这不需要花费太多时间,我创建的应用程序可以避免枯燥的问题并专注于业务逻辑

如果你看一下入门指南,你就可以清楚地了解并开始正常工作。

我推荐它!