首页 文章

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

提问于
浏览
7

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

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

现在将添加更多模块,考虑开发另一个Web应用程序并使用Spring集成进行消息传递 . 显然,在一台台式计算机上进行开发将是一次非常痛苦的经历 .

有没有人有任何 Cloud 开发经验?如何改进所有这些耗费时间和资源的任务?在 Cloud 中开发会帮助我吗?

2 回答

  • 8

    首先,要注意瓶颈 . 随着他们的成长,他们倾向于进入项目 . 最初的设计一次又一次受到损害,以满足疯狂的最后期限,现在膨胀已经杀死了曾经生动的应用程序 .

    不要猜测问题,而是使用真实数据来确定是什么让你的应用变慢 . 使用jProfiler等分析器:http://www.ej-technologies.com/products/jprofiler/overview.html

    接下来,使用您学到的知识来提高新模块的效率 . 最重要的是改变技术不是一个解决方案,因为所有技术都可能存在瓶颈 . 你必须找到问题背后的原因并解决它 .

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

  • 8

    这是典型的java spring web应用程序的常见问题 . 随着年龄的增长,他们开始变得臃肿,上下文加载开始变得痛苦 . 我可以提出一些建议,以缓解这个问题,但只有你能够最好地判断你,具体取决于你的应用程序的确切内容 .

    • 在开发过程中不要过分依赖服务器 . 写单元测试并在servlet容器外运行它们 . Spring对此有很好的支持 .

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

    • 如果使用maven / gradle,请尝试使用jetty插件 . 它可以继续扫描更改并自动重新加载webapp(我认为tomcat插件也可以这样做) . 它能够在重新启动之间存储会话,因此您不会受到重新启动的影响 . 有关详细信息,请参阅此How can I speed up Maven and Netbeans

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

    • 使用CI服务器,继续集成/测试/部署您的应用程序,减轻开发人员计算机的负担 .

相关问题