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

bek*_*ku8 7 java cloud spring tomcat development-environment

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

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

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

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

Tod*_*ses 8

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

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

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

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


kda*_*bir 8

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

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

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

  3. 如果使用maven/gradle,请尝试使用jetty插件.它可以继续扫描更改并自动重新加载webapp(我认为tomcat插件可以做同样的事情).它能够在重新启动之间存储会话,因此您不会受到重新启动的影响.请查看此内容以获取更多详细信息如何加快Maven和Netbeans的速度

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

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