加速Java企业Web应用程序的启动

时间:2011-10-19 09:02:08

标签: java performance hibernate spring startup

我目前正在处理的项目涉及托管应用程序构建的Tomcat servlet容器:

  • Hibernate作为ORM框架
  • Spring as middle tier
  • 针对网络层的XLST转换

有没有办法加速主要构建Spring bean信息的hibernate entinty结构,还是有任何常见的技巧来加速java企业Web应用程序的启动?

2 个答案:

答案 0 :(得分:1)

与其他所有内容一样,进行分析并找出您真正花时间的地方。是的,Spring自动检测在大型应用程序中可能会很慢,但也可能是急切的初始化。没有分析信息,你只是猜测问题是什么。

答案 1 :(得分:1)

回答游戏的最后阶段,但是如果有帮助的话:我发现的最好的事情是逐项浏览你的web.xml并删除你可以做的任何臃肿。这为我节省了几分钟。分析也很好,因为它可以帮助您查明昂贵的东西,如额外的Hibernate会话工厂。保持精简POM以减少类路径扫描时间(使用依赖关系树)。使用@Autowired非常方便,但如果可行并且您有时间,请浏览您的应用程序并删除任何未使用的引用和不必要的注释。组件扫描也是如此。确保您的数据库连接器是最新的。大部分过多的启动时间通常与您的特定应用程序相关,而不是现代Tomcat实例或框架。如果您的应用程序非常庞大并且您可以将它们模块化到不同的罐子中,那么您只需在开发时加载您需要的那些罐子即可。

在嘈杂的记录仪上将记录设置为WARN。添加TLD jar以跳过Tomcat 6/7中的org.apache.catalina.startup.TldConfig.jarsToSkip也可以提供帮助。使用APR进行本机编译并没有为我节省启动时间,尽管我想象这可以帮助正在运行的容器服务页面而不是启动时间。此外,禁用antiJARLocking/antiResourceLocking将加快Tomcat启动时间。

你应该可以使用Spring 4 / Hibernate 4 / Tomcat 7以及中等速度的笔记本电脑进行15秒的启动。