热部署原理它就是使用类加载器(classloader重新读取字节码文件到jvm内存).其实也可以自己使用java写一个热部署,监听class文件是否发生了改变,可以根据版本号或者修改时间,如果改变的话,就使用classloader重新读取.
注意热部署千万不能使用在生产环境,热部署只是为了本地开发提高效率的,如果项目非常大的话热部署也是非常卡的,比较占内存的
先添加依赖,optional为true表示不传递依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency>
这个东西先不要加,如果不好使再加这个
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
然后在配置文件中配置
#热部署 spring.devtools.restart.enabled=true
然后按快捷键:crtl+alt+shift+/,找到Registry,点击进入:
勾选compiler.automake.allow.when.app.running,点击close,关闭,勾选上后下次打开就跑最上面了,第一个是修改时间,不用调也行
点击File->Setting->Build,Execution,Deployment->Compiler,在右侧勾选Bulid project automatically,点击Apply,点击Ok关闭,然后就部署好了
如果想在新建的项目里也保持这修改就看下图
使用jsp热部署,只需要在配置文件中加入
#jsp热部署 server.jsp-servlet.init-parameters.development=true
要是配置以上东西不好使是话,就进行如下操作,就可以了