本人做Java Web开发4年了,对Java的"慢"深有感触,和PHP没法比啊.
php修改代码之后,立刻生效,无需重启服务器;
而java,修改java文件之后,就得重新部署或者重新启动tomcat.
我一直主要使用eclipse进行java web开发,在编写代码过程中,不管你改了一个字符还是一个方法,甚至整个类,tomcat也会重启.改一点就得重启一次,真心觉得效率太低了,时间都浪费在tomcat重启了.
大家说的热部署或者重新发布实际上也相当于tomcat重启了,因为同样是把所有的class和资源文件加载一遍
其实关键点不是tomcat重不重启,而是每次都全量加载
现在用上了JRebel,tomcat重启的老毛病终于解决了!
为什么早几年没有人告诉我有JRebel 呢?
eclipse 安装好JRebel插件之后,可以'帮助'中看到JRebel的图标:
进入JRebel Config CENTER:
tomcat 的VM arguments 如下:
${jrebel_args}
-Dcatalina.base="D:\software\eclipse\workspace2\.metadata\.plugins\org.eclipse.wst.server.core\tmp0" -Dcatalina.home="D:\software\apache-tomcat-7.0.59-windows-x64\apache-tomcat-7.0.59" -Dwtp.deploy="D:\software\eclipse\workspace2\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps" -Djava.endorsed.dirs="D:\software\apache-tomcat-7.0.59-windows-x64\apache-tomcat-7.0.59\endorsed"
-Drebel.spring_plugin=true
好处:
当我们修改java文件时,妈妈再也不用担心tomcat重启了,而且JRebel也不会立刻重新装载修改的class,
只有当我们http访问时才会重新装载修改的类,而且仅仅装载修改的类.实际上是一种差量装载: