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

加速Java企业web应用程序的启动,java,performance,hibernate,spring,startup,Java,Performance,Hibernate,Spring,Startup,我目前正在从事的项目涉及托管以下应用程序构建的Tomcat servlet容器: 作为ORM框架的Hibernate 作为中间层的Spring web层的XLST转换 有没有什么方法可以加快主要构建SpringBeans信息的hibernate EntityStructers的速度,或者有没有什么常见的技巧可以加快java企业web应用程序的启动速度?与其他方法一样,进行分析,找出您真正花时间的地方。是的,Spring自动检测在大型应用程序中可能很慢,但初始化也可能很慢。没有分析信息,你只是

我目前正在从事的项目涉及托管以下应用程序构建的Tomcat servlet容器:

  • 作为ORM框架的Hibernate
  • 作为中间层的Spring
  • web层的XLST转换

有没有什么方法可以加快主要构建SpringBeans信息的hibernate EntityStructers的速度,或者有没有什么常见的技巧可以加快java企业web应用程序的启动速度?

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

游戏进行到很晚才有答案,但如果对任何人都有帮助的话:我发现最好的办法是逐项检查web.xml,并尽可能去除所有膨胀的内容。这使我缩短了几分钟。评测也很好,因为它可以帮助您精确定位昂贵的东西,比如额外的Hibernate会话工厂。保持精简POM以减少类路径扫描时间(使用依赖关系树)。使用@Autowired确实很方便,但是如果可行并且您有时间,请检查您的应用程序并删除任何未使用的引用和不必要的注释。组件扫描也是如此。确保您的DB连接器是最新的。过多的启动时间通常与特定的应用程序有关,而不是现代的Tomcat实例或框架。如果您的应用程序很大,并且您可以将它们模块化到不同的jar中,那么您只需在dev中加载当时任务所需的jar即可

将日志设置为警告嘈杂的记录器。在Tomcat 6/7中的org.apache.catalina.startup.TldConfig.jarsToSkip中添加要跳过的TLD JAR也会有所帮助。带APR的本机编译并没有为我节省启动时间,尽管我认为这比启动时间更有助于运行容器服务页面。此外,禁用将加快Tomcat引导时间


使用Spring 4/Hibernate 4/Tomcat 7和速度适中的笔记本电脑,您应该能够在15秒内启动。

您想加快启动速度,以缩短开发或生产期间的周转时间吗?我只想缩短服务器的启动时间,从而带来新技术(即Roo、Grails、Play!Framework等)在我的情况下不符合条件。您想减少开发应用程序所需的时间,还是减少服务器启动所需的时间?服务器启动所需的时间我一直在使用Jetty,我并不打算真正使用JRebel