一个大规模的Java项目解决方案

时间:2010-12-14 15:02:05

标签: java ajax java-ee ejb frontend

我想从头开始一个项目。我是一名java开发人员多年。我前段时间甚至写过我自己的mvc框架以获得乐趣。现在我在一家使用内部框架的公司工作 - 我认为这完全是浪费时间和金钱。我尊重与不同技术人员合作开展大型项目的想法。项目的分离非常重要;图形人员,前端开发人员,软件架构师,软件开发人员,数据库专家等。我不会冒险使用像php这样的脚本语言。

最近,我正在研究各种方面的大型项目的Java技术。我的意思是,对于前层我遇到了非常着名的技术。

  • 弹簧
  • MyFaces的
  • 挂毯
  • Google Web Toolkit
  • 速度

他们每个人都表示这是最简单,最快,最新的技术。当然只有一个人能掌握真相。我需要一个前端技术来快速实现ajax,客户/管理员安全性,主题,模板,国际化,缓存静态页面,集群和ejb支持。它还应该有IDE支持,社区支持,丰富的文档和在线教程。我仍然没有这些框架可供选择的经验。也许还有更好的一个?最重要的是,我不敢冒险开发具有开发限制的技术。对这一层有什么建议吗?

对于业务层,我确信EJB和JPA。我甚至考虑将此层的Web服务用于未来扩展的互操作性目的。但是,我不知道保护该层(它可以应用于其Web服务级别),这对我来说仍然是一个问题。对于应用程序服务器,我正在考虑GlassFish。

最后一个问题是应该选择IDE进行开发。关于将要使用的所有技术,IDE应该在每个步骤中帮助我,为我做配置或帮助我配置其现成的向导。我想IDE将有适当的插件用于使用技术。

我知道我想要的太多了,但是我希望能够结合各种技术来帮助我在未来的计划中节省时间和金钱。

我会很高兴听到您的回应,为更大的图景体验。

编辑: 没有最终答案,我知道。我只是在接受建议。任何答案都表示赞赏。

6 个答案:

答案 0 :(得分:3)

好吧,我会尽力提出具体的建议,因为我认为这个问题可以回答。

我只是推荐我的筹码。

我的堆栈是前端的Stripes,后端的Glassfish / Java EE 5。

条纹是一个简单的动作(或MVC,无论你的船是什么漂浮),它有一个小而强大的声音社区。它与JPA(通过插件)紧密集成,这是一本关于该主题的非常好的当前打印机书籍以及出色的参考文档。它的主要渲染技术是带JSP标签和EL的JSP。

它不是像JSF / MyFaces这样的组件框架,因此它的实现更简单,并且它的生命周期更简单。它适用于Ajax。

围绕Stripes的关键因素,因为它基于HTTP请求周期,它可以为你完成大部分垃圾工作,但是非常轻量级。这很容易理解和理解。创建一个基本的Stripes应用程序是web.xml中的几行和两个jar(其中一个是log4j)。如果您可以在HTTP中思考,那么Stripes非常适合您。

在后端,我会坚持使用EJB和GlassFish。 Java EE 6和GFv3已经出局了一段时间。它提供了许多超过Java EE 5的新功能,而GlassFish提供了您想要使用的大多数Web服务技术。 Java EE 6和Spring在基于项目符号的基础上几乎是相同的,并且由于您正在查看GF,因此您可以使用EJB,因为它存在并集成在框中。如果您使用的是Tomcat,那么Spring可能是个不错的选择。

而且就是这样。这就是你所需要的一切(我不知道你想要什么Velocity,如果你愿意的话,你可以轻松添加它,但我不会将它用于页面,个人而言,现代JSP要好得多恕我直言。)

Glassfish将保护您的Web服务,您可以将Java EE安全性与Web应用程序结合使用,您可以在后端EJB与Web应用程序和Web服务之间共享逻辑。这一切都是开箱即用的15分钟配置,以使Stripes运行。

我使用NetBeans,但所有其他IDE也可以使用。 NetBeans很好,因为它与Glassfish集成在一起。少配置一下。下载它,启动它,它可以工作。

有一个NetBeans的Stripes插件,我没有使用。我认为不需要。将几行添加到您从网站剪切和粘贴的web.xml后,您再也看不到Stripes了。从那里,它是所有简单的注释。

除非你对组件框架的所有复杂性和学习曲线都有迫切的需求,否则它不会比Stripes更好,而且带有Java EE 6的GF拥有你需要的所有东西。

总而言之:Stripes发行版来自www.stripesframework.org,NetBeans下载来自netbeans.org,stripersist来自stripes-stuff.sourceforge.net。这是一个坚如磐石的基础,无论你想去哪里都可以。

来到#stripes的freenode上的Stripes IRC,我们将回答您的任何问题(或点击邮件列表)。

答案 1 :(得分:1)

嗯,首先,你的问题并不好。每项技术都有明亮的侧面和黑暗的侧面。要选择一些特定的技术 - 您需要在所有这些技术中有经验来估计项目可能出现的问题。根据您的定义:fast implementation for ajax, customer/administrator security, themes, templates, internationalization, caching static pages, clustering and a support of ejb - 90%的框架直接或使用某些插件支持所有框架。

此外,各种技术可以针对各种需求进行更好的优化。你不可能拥有一个完美无瑕的一体化超级框架,并尽可能做到最好。鉴于该框架具有高度可扩展性和快速性(例如:Spring和/或Portlet),因此很难配置一些小任务。

所以我唯一可以推荐的是谷歌“Java Web Framework比较”并希望最好。

关于IDE,我只能看到两个选择:IntelliJ Idea和Eclipse。再一次,没有明显的赢家,谷歌是你可以得到的唯一信息来源。

<强>加了: 再次讨论框架,复杂的项目会同时使用其中的几个,将每个框架的最佳部分用于帮助满足特定的项目需求。但要有效地做到这一点 - 你需要成为所有混合技术的大师。

答案 2 :(得分:1)

几乎没有人可以为你真正回答这个问题。在前端技术方面,其中一个框架将适用于您,而其他框架则不适用。这一切都取决于哪一个对你有意义。我的建议是全力以赴,选择你觉得最舒服的那些。

话虽如此,我确实有一些建议。首先,不要限制自己使用Java。如果是我,我会使用在jRuby上运行的Ruby on Rails作为前端,因为它是开发我使用的Web应用程序的最快框架。通过在jRuby上运行它,它允许你挂钩到Java并让java及其库在后端完成所有繁重的工作。我会远离Web服务并使用ReST实现。

就IDE而言,一定要使用IntelliJ IDEA。它可能需要一点点习惯,但它绝对是市场上最快的IDE。但是,Eclipse和Netbeans对Java也非常好,而且便宜一点。

再一次,答案是“它取决于”。

答案 3 :(得分:0)

所有上述项目都是从简单的想法开始的。当他们获得牵引力时,他们都添加了相邻功能,这些功能对某些功能有用但不一定全部。换句话说,您必须进行深入分析以选择完美的框架。

你不会找到一个完美的匹配,除非你恰好和那些在特定框架上工作的人一样,假设所有这些思想都完全一致。唯一的“完美”契合就是你自己写的那个,即便如此,你发现它并不完美,因为你在开发框架方面的时间和精力有限;毕竟,你有一个要编写的程序,框架开发时间与程序开发时间竞争。

就IDE而言,品味和风格各不相同。我倾向于在Netbeans和Eclipse的旧版本之间徘徊,我的下一个IDE将是IntelliJ Idea。要记住的是,大多数人都会使用一个IDE,然后对其余的进行诽谤,所以你真的无法进行比较。 IDE需要花费太多时间才能真正学会一个人提供诚实无偏见的观点。一个好的候选IDE“X”在某些人看来是最差的,在其他人看来是最好的。

答案 4 :(得分:0)

考虑到其他答案的外观,我会说最大的剩余因素是你和你的团队的学习曲线。鉴于您对角色分离的描述,您的主要关注点应该是选择一个总体框架,例如Spring。从那里,你的数据库人员可以选择他们想要的任何数据持久性(hibernate,jdbc,等等),你的gui人可以选择他们想要的前端(tapestry,jsf等)。

我对这种明显的角色分离的主要关注点是团队沟通。确保它们是高度开放的沟通,特别是在讨论界面设计时,因为这些将成为项目成功或失败的一部分(特别是如果你选择Spring)。

就IDE来说,这是个人偏好。其他帖子(Eclipse和IntelliJ)中提到的两个是我最常听到的两个,Eclipse是我过去4或5年的标准IDE。我不熟悉IntelliJ,但我知道Eclipse有插件来支持Spring,Hibernate以及许多其他框架和ORM解决方案。它还具有支持其他语言的插件,例如Ruby和PHP。

答案 5 :(得分:0)

“我前段时间甚至为了好玩而写了我自己的mvc框架” - 在一天结束的时候,你可能会后悔没有留下它。事实上,比目前“着名”更好的技术最有可能是稍后会出名,而不是现在。你的一半名单已经过时了“着名”。

相关问题