如果你今天开始使用什么堆栈用于新的Web Java项目?

时间:2010-05-27 20:06:51

标签: java model-view-controller frameworks stack

如果您今天要开始一个全新的Java项目,并满足以下要求:

  • 高规模(20k +用户)

  • 你想要使用相当成熟的东西(不会发生剧烈变化)& 3年内不会死技术

  • 你想要一些非常高效的东西(没有服务器在开发中重启,保存代码及其自动编译和部署),生产力和上市时间是关键。

  • 前端有一定数量的AJAX

  • 没有脚本语言(JRuby,Groovy,PHP等),它必须是Java

  • 必须支持i18n

你会使用什么堆栈&为什么? (当我说堆栈时,我的意思是,所有的东西都要坚果,所以应用服务器,mvc框架,bean框架,ORM框架,javascript框架等......)

5 个答案:

答案 0 :(得分:10)

我会考虑使用Java EE 6堆栈:

  • GlassFish v3作为应用服务器:在开发过程中不重,效率很高(而且GlassFish 3.1将在今年年底之前发布,将具有集中管理/群集和高可用性/状态复制)
  • JQuery,JSF 2(或Wicket)的演示文稿
  • CDI,EJB 3.1(Lite?),JPA 2.0(Hibernate 3.5+或EclipseLink)
  • Arquillian (1)使用Weld SE和/或GlassFish Embedded进行测试

<子> (1)另见:

答案 1 :(得分:3)

对于传统的java webapp,为了你的目标,我会使用条带作为MVC框架,因为它很容易设置和运行,并且它在spring和hibernate中运行良好,并且具有良好的ajax支持。

就生产力而言,eclipse动态Web项目应解决您的编译/部署问题。我总是将它与tomcat一起使用,但它也适用于jBoss。

我个人会使用tomcat,stripe(mvc),hibernate(orm),spring(如果需要),jQuery(js)和eclipse进行开发。

答案 2 :(得分:3)

  • Tapestry 5&amp; JQuery(Tapestry 5设计为未来的证明,不需要服务器重启,开发速度超快 - 组件精益 - 它也可以很好地扩展)
  • 用于bean配置的Spring(Tapestry支持基于注释的Spring bean配置)
  • 为关系模型手工制作JDBC(因为我不喜欢为ORM添加另一个代码层,并且可以更好地调整手工制作)
  • Lucene表示不需要以关系方式查询的索引或数据
  • Tomcat(或嵌入式Jetty) - 两者都是可靠且经过良好测试的服务器

答案 3 :(得分:1)

我会选择:

  • Oracle 11g数据库。
  • JPA 2.0 ORM with EclipseLink。
  • Glassfish v3(至少在Oracle WebLogic符合Java EE 6之前),提供任何消息队列,数据库连接池或您可能需要的任何JCA资源。

我不会选择JSF ...... JSF 2.0比JSF 1.0要好得多,但在某些方面仍然很糟糕。你肯定会遇到“违背JSF方式”的情况(或者更确切地说,在JSF中没有适当的照顾)。

如果您希望控制一些复杂的导航,我会选择Spring 3.0框架和带有Spring Web Flow的Spring MVC。如果您愿意,这还可以让您选择将Web部件放在单独的服务器(例如Tomcat)上,并通过IIOP调用Glassfish上托管的EJB,从而扩展。

如果您希望完全控制页面的设计,(也许您打算聘请网页设计师来保持外观和感觉)我会选择Velocity这样的模板引擎,它可以很好地与Spring MVC集成并且与大多数工具(例如Dreamweaver)具有设计友好性。

最后,JQuery使用一些现成的Javascript小部件,如日历控件,弹出窗口,用户消息和转换。

答案 4 :(得分:0)

Scala和Spring