在ssh项目中,struts1.2+spring2.5+hibernate3.2,spring只加入了core和web包,hibernate只加入了core和spring持久化包,为什么每次重启tomcat都那么慢,一般如果只是struts+hibernate 7到10秒就够了,而如果加了spring起码要40s以上,为什么呀?有什么解决的办法没?(这是重点,办法一奏效,立即给分,效果不错还可以追加给分)ps:log4j都是在info级别

解决方案 »

  1.   

    昏~这个事因为你关系映射的原因~
       看下lazy关没·
        还有其他的·
      

  2.   

    spring启动时要装配已经配置的bean,当然慢一些。
      

  3.   

    Johnson_Hong 
    帮我看下错行不`、
    整了一天了
     
      

  4.   

    把log4j里面的这个属性改成这样log4j.rootLogger=error,stdout,file
      

  5.   

    但是改为error的话,就相当于基本没用log4j了呀
      

  6.   

    spring会生成配置文件中配置的bean对象,所以会慢一些
    也有可能是你webapps下面的工程太多了,所以启动慢
      

  7.   

    这个问题有下面几种处理方法:
    1.在MyEclipse下你有可能发布了几个比较大的项目,因为Tomcat在启动的时候,会把Tomcat中的work中的项目都要加载一遍,所以如果发布了比较多的项目,就会导致Tomcat在加载时会很慢,这时,只有把其他的项目在work中删掉,只留你想要的,那么速度会很快提上去的。
    2.在hibernate配置文件中,lazy一般不要设置成false,因为,laze=fase会把子类一起加载到session缓存中,这样加载就会很慢,hibernate配置文件中默认laze=true
    3.一般在用ssh时,因为要加载很多的配置信息,所以Tocmat启动会很慢,可以把struts和spring中的必用的包加载,而不用的而又不影响运行的包可以暂不加载,这样也是提高Tomcat启动速度的一部分。
      

  8.   


    谢谢您的回答,我一般是用myeclipse直接加包的,一般spring加core类包和web类包,hibernate加core类包和spring持久化包,struts没得选择,就七八个 一块儿加过来了,请问这样加包是否合理呀,该怎么改进呀
      

  9.   

    楼主在上面所说的那几个加的包是ssh中最基本的包,然而一个大的项目应该要加很多包的,其中包括一些插件和自己写的通用jar,比如还要加dwr.jar,mail.jar,等等。对于楼主所提到这个问题,我个人觉得所加的包的多少不是影响Tomcat启动的主要原因,只要在MyEclipse下只发布一个当前用的项目,那速度还是可以的!