如何在java中开发/部署BIG企业应用程序



在过去的两年里,我一直在tomcat上使用java+spring,我的应用程序变得特别巨大。启动时间现在几乎是3分钟,在开发过程中消耗了大量资源。

所以我对如何让开发软件再次变得有趣的想法很感兴趣。我看过Spring DM/Genix的蓝图,使其成为模块化的,但体验并不方便。

现在将添加更多的模块,考虑将其开发为另一个web应用程序,并使用Spring集成进行消息传递。显然,在一台台式电脑上开发它将是一次非常痛苦的经历。

有人有云开发经验吗?我如何改进所有这些耗时耗力的任务?云端开发对我有帮助吗?

这是典型的java+spring web应用程序中非常常见的问题。随着年龄的增长,他们开始变得臃肿,上下文加载开始变得痛苦。我可以提出一些建议来缓解这个问题,但只有你才能根据应用程序中的具体内容做出最适合你的判断。

  1. 在进行开发时不要严重依赖服务器。编写单元测试并在servlet容器之外运行它们。Spring对此提供了极好的支持。

  2. 在Rest/Soap web服务中拆分业务逻辑(明智而谨慎)。这使您可以自由地开发和测试独立于核心业务逻辑的UI。

  3. 如果使用maven/gradle,请尝试jetty插件。它可以不断扫描更改并自动重新加载网络应用程序(我认为tomcat插件也可以这样做)。它能够在重新启动之间存储会话,所以您不会受到重新启动的影响。请参阅此了解更多详细信息如何加快Maven和Netbeans

  4. [付费选项]可以尝试JRebel。

  5. 使用CI服务器,它可以不断集成/测试/部署您的应用程序,减轻您的开发人员机器的一些负载。

首先,解决瓶颈问题。随着项目的发展,他们有潜入项目的倾向。最初的设计一次又一次地被妥协,以满足疯狂的截止日期,现在膨胀扼杀了一个曾经活跃的应用程序。

不要猜测问题,而是使用真实数据来确定是什么让你的应用程序速度变慢。使用诸如jProfiler之类的探查器:http://www.ej-technologies.com/products/jprofiler/overview.html

接下来,利用所学知识提高新模块的效率。最重要的是,改变技术并不是万全之策,因为所有技术都可能存在瓶颈。你必须找出问题背后的原因并加以解决。

一旦你解决了瓶颈,你就可以在一项新技术上创建一些测试项目,看看它是否更快、更容易,满足你的需求。但是,很可能只需要修复当前堆栈上的问题。

最新更新