php比java的开发效率高几乎成了大家的共识了。为什么php开发起来会比java快很多呢?频繁的服务重启是众多原因之一。php开发者们编辑完了 php代码,只要刷新一下浏览器,就可以看到运行的效果了,从来没有编译和重启apache的问题。尽管现在的IDE能够自动编译部署和打包应用程序,但 是还是没有php便捷。这一年来一直在使用jboss 4.2 做开发,jboss号称有很强的热部署能力,但是更新一个应用后还是要等上一两分钟的时间让jboss重新部署应用,而且这种热部署时间一长就会发生内存 耗尽的错误。如果是用tomcat+spring这种轻量级解决方案,重启一次十几秒钟,还可以接受,但是jboss+seam要一两分钟,而且吃掉百兆 内存,实在让人受不了。有的时候感觉一天之中没有在专心写多少代码,都是在等待jboss重启中度过。我现在对这种工作方式越来越不满,我想要更好性能的 开发机器,使用更轻量的框架,更轻量的服务器。现在使用的seam相对spring+hibernate+struts来说,还是重量的多,而jboss 也没有tomcat那样轻巧。如果能够不用等待就可以看到程序运行的效果,java在开发效率上会离php更近一步。
jboss的热部署,是指不重启jboss的情况下部署应用,比如ear, war等。虽然不重启jboss,但是还是要卸载和装载应用,还是慢。
如何热部署jboss应用呢?如果应用是用打包方式部署的,更新一下包的修改时间就可以了。如果是以目录的方式部署的,对于ear,更新一下META-INF/application.xml的修改时间,对于war,则更新WEB-INF/web.xml的修改时间。更新修改时间,最方便的就是用touch命令了,如果你用的是windows,没有touch命令,你可以装一个cygwin,或者用ant的touch任务来代替。