我打算开发开源java应用程序,以便在谷歌应用程序引擎以及普通的rdbms系统上工作,所以请帮我选择
MVC框架 - Struts / Spring MVC?
ORM - JDO / JPA?
我正在考虑将表现作为一个关键因素。
答案 0 :(得分:1)
你的表现是什么意思?例如,如果您没有使用always on功能,则可能会将服务器冷启动时间视为影响性能的唯一因素。所有的框架都会让它变慢,甚至还有blog post about optimizing the cold start-up time。
对于MVC来说,Spring 3非常擅长,但更多的是个人偏好和你喜欢的东西。如果你想要为AppEngine设计一些东西,试试Gaelyk,那就是Groovy。对于数据存储,JPA可能使用得更广泛,但我认为App Engine上的JDO支持更好。如果您需要从App Engine下车,这两者都提供了一定程度的平台独立性。还有Objectify-Appengine和Twig与平台更紧密相关,因此可能为管理数据存储提供更好的界面。
答案 1 :(得分:1)
对于应用程序引擎,您需要一个轻量级框架,用于持久性和应用程序。谷歌正在改变他们的定价模式,因此您可能还想考虑这将如何影响您的计划。有关此问题的应用引擎小组有一个有趣的讨论:https://groups.google.com/forum/#!topic/google-appengine/ob-kMuDAAqc/discussion
除此之外,我只能评论持久性框架的选择:
应用引擎上的JDO 很痛苦。他们(Google)在app引擎中支持的版本是1.x,这是古老的,我相信。让事情变得比我记忆中的事情更麻烦。 如果您以前有使用JDO的经验,那么这仍然是一个不错的选择。如果我重新开始,我会选择专门为app引擎编写的持久性框架,例如 objectify 或 twig 。它们需要更少的开销并且更容易使用(从我的角度来看)。一个巨人加上客观化:开箱即用 memcache支持,无需额外工作。这有多棒?
但是,您还希望支持RDBMS。如果你有时间,你可以在objectify和你选择的RDBMS持久层之上滚动你自己的抽象层。这将为您提供您正在寻找的性能优势。 ;)
如果这不是一个选项我会建议JPA(不是因为我自己使用过它,而是因为我在JDO上遇到了很多麻烦)。
希望这有帮助!
答案 2 :(得分:0)
我个人会选择 Java EE 6 framework.So
MVC :JSF - >非常轻巧,易于开发。 JSF2.x修复了JSF1.2的许多缺点功能 ORM :JPA2.0 - >因为它是标准的并且带有Java EE 6捆绑包。您可以选择Hibernate替换。每个都有自己独特的优势功能。我不会说一个人比其他人好。 别忘了Java EE 6附带了EJB3.1。 EJB的声誉很重,但是自从EJB 3.0以来,它就是一个完全不同的故事。 EJB3.1变得更加轻便且易于开发。 Glassfish网络简介提供EJBLite(Hehehehe:D:D轻得多:D)
就开发复杂性而言,我不得不说Spring比JEE6复杂一点,但同样,我只触及Spring非常小,这个讨论将留给更多有经验的开发人员来讨论。
答案 3 :(得分:0)
我会选择JSF + JPA,并使用Spring Framework进行依赖注入。
我的5¢。 :P