如果您今天开始新的web Java项目,您会使用什么堆栈?

如果您今天开始新的web Java项目,您会使用什么堆栈?,java,model-view-controller,frameworks,stack,Java,Model View Controller,Frameworks,Stack,如果您今天要开始一个全新的Java项目,需要满足以下要求: 高规模(20k+用户) 你想使用相当成熟的技术(不会有太大的变化)&三年内不会死掉的技术 您需要一些非常高效的东西(无需在dev中重新启动服务器、保存代码及其自动编译和部署),生产力和上市时间是关键 前端有一些AJAX 没有脚本语言(JRuby、Groovy、PHP等),它必须是Java 必须支持i18n 你会使用什么堆栈&为什么?(当我说stack时,我的意思是,一切都是胡说八道,所以应用程序服务器、mvc框架、bean框架、OR

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

  • 高规模(20k+用户)

  • 你想使用相当成熟的技术(不会有太大的变化)&三年内不会死掉的技术

  • 您需要一些非常高效的东西(无需在dev中重新启动服务器、保存代码及其自动编译和部署),生产力和上市时间是关键

  • 前端有一些AJAX

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

  • 必须支持i18n


你会使用什么堆栈&为什么?(当我说stack时,我的意思是,一切都是胡说八道,所以应用程序服务器、mvc框架、bean框架、ORM框架、javascript框架等等。)

对于传统的java Web应用程序,为了您的目标,我会选择stripes作为mvc框架,因为它非常容易设置和运行,而且它与spring和hibernate配合得很好,并且具有良好的ajax支持

就生产率而言,eclipse动态web项目应该可以解决编译/部署问题。我一直在tomcat中使用它,但它也应该在jBoss中使用


我个人会使用Tomcat、条形码(MVC)、Hibernate(ORM)、Spring(如果需要)、jQuery(JS)和Eclipse进行开发。

< P>我会考虑使用java EE 6栈:

  • GlassFish v3作为应用服务器:不重,在开发过程中非常高效(将于年底前发布的GlassFish 3.1将具有集中管理/群集和高可用性/状态复制)
  • JQuery、JSF2(或Wicket)用于演示
  • CDI,EJB3.1(Lite?),JPA2.0(Hibernate3.5+或EclipseLink)
  • (1) 嵌入焊接SE和/或玻璃鱼进行测试
(1) 另见:

      • Tapestry 5和JQuery(Tapestry 5的设计是面向未来的,不需要重新启动服务器,而且开发速度非常快—组件非常精简—可扩展性也很好)
      • springforbean配置(Tapestry支持基于注释的springbean配置)
      • 手工制作的用于关系模型的JDBC(因为我不喜欢为ORM添加另一个代码层,手工制作可以更好地调优)
      • Lucene用于不需要以关系方式查询的索引或数据
      • Tomcat(或Jetty,如果嵌入式的话)-两者都是可靠且经过良好测试的服务器

        • Scala和Spring

          我会选择:

          • oracle11g数据库
          • JPA2.0ORM和EclipseLink
          • Glassfish v3(至少在OracleWebLogic与JavaEE6兼容之前),提供任何消息队列、DB连接池或您可能需要的任何JCA资源
          我不会选择JSF。。。JSF2.0比JSF1.0好得多,但在某些方面仍然很糟糕。在“与JSF方式背道而驰”(或者更确切地说,在JSF中不适合)的场景中,您肯定会遇到困难

          如果您希望控制一些复杂的导航,我会选择Spring3.0框架和SpringMVC以及SpringWebFlow。如果您愿意的话,这还可以让您选择将web部件放在单独的服务器上(如Tomcat),并通过IIOP调用Glassfish上托管的EJB,从而进行扩展

          如果您希望完全控制页面的设计,(也许您打算雇佣一名web设计师来维护外观),我会选择Velocity这样的模板引擎,它与Spring MVC很好地集成,并且与Dreamweaver这样的大多数工具都是设计友好的


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

          呃。。。阿奎利安到底是什么?它的网页对此并不十分清楚,概览链接将我带回JBoss的主页。@R.Bemrose:这是一个用于集成测试的测试工具。我已经更新了项目站点的链接(并添加了更多链接)。我听说EJB3/JPA2在ORM方面并没有那么糟糕。再说一遍,EJB3/JPA2是接口,不是实现。答案基本相同,不过我肯定会使用Querydsl()进行查询构造。Oracle?预算问题出现了……你能详细说明一下“JSF2.0仍然很糟糕”的评论吗?没有规定预算限制。这个问题更倾向于可靠性和敏捷性。oracle标准版应该做到这一点,而不必过分追求预算和真正的应用程序集群。否则,像Postgresql或Mysql这样的东西就可以了,但它们的集群解决方案并没有那么强大,事实上,如果您想获得适当的支持,仍然需要成本。不过,所有这些都是好的数据库。“JSF2.0仍然很糟糕”,因为:a)JSF对设计师不友好,因为它希望他们学习标签和JSF生命周期。设计师通常使用所见即所得工具,如Dreamweaver和Photoshop。b) 有了JSF,您将任由可用组件摆布。一旦你需要一个稍微不同的行为,它就会变成一场噩梦。c) JSF不支持条件或循环,因为它“违背了它的模型”,这并不总是足够的。JSTL填补了一些空白,但它们各自的生命周期会带来问题(尝试使用JSTL循环来使用字符串数组作为JSF选项卡视图的标题)。