2012-01-12 64 views
2

我有一个使用EJB 3 + Hibernate编写的Java项目,它托管在Glassfish服务器上。现在要重写所有内容并将其移至Google App Engine。什么是最简单的方法来做到这一点。我们是否应该开始使用Spring来创建实体来管理数据? 我们希望摆脱EJB + Hibernate的原因是cpu开销和开发。有时需要10分钟才能重新启动服务器以测试更改。 我们使用GWT作为前端。从Glassfish with EJB迁移到Google App Engine与Spring

回答

0

我在GAE上有2个live spring项目,并且可以推荐它。它很灵活,足够快:启动需要15-20秒(在GAE上),并处理约60-90ms(不带GAE API调用)的请求。

当然,您可以使用计划servlet,但这太难以维护了。

3

如果项目变得非常大,Spring也会启动缓慢。你拥有的豆越多,启动速度就越慢。

尽管我们有几百个EJB bean的项目,启动时间也不错(30到40秒)。我帮助了一段时间,回到了一个我猜测的春季项目几乎相同的大小,但花了几分钟才开始。因此,在你花2年时间用完全不同的框架重写所有内容之前,我强烈建议你自己先做一些基准测试。

也许只是在适当的硬件上花费一些钱是更经济的解决方案。快速的固态硬盘,足够的内存和合理快速的CPU可以创造奇迹。

如果只是关于开发体验,那么对于工作站来说,这不需要花费太多。我并不是主张只是硬件问题,而是为了提高启动速度而对一种完全不同的技术进行重大改写,以提高启动速度,而这些启动速度实际上无法改善,可能不是最聪明的做法。

5

在您开始如此大规模的迁移之前,请记住,您可以通过不使用注释并在XML中列出实体和ejb bean来提高启动性能。确保关闭注释扫描。就个人而言,我宁愿交易启动速度,以便不必维护详细的XML文件,但这可能对您有帮助。

你也可以选择开始使用JRebel。这将大大减少开发过程中所需的重新启动次数(大多数情况下将其降为零)。

如果只是转移到云端,您不必重写Spring。有很多产品可以支持EJB和一般的Java EE耳朵(例如OpenShift)。 GAE可能很酷,但很难完全远离GAE API。一旦你开始使用这些,你几乎被锁定在GAE中。作为一个个人笔记,我认为从EJB迁移到Spring是倒退的,这种趋势似乎是相反的。