java热部署与热加载的联系
效果:
- 不重启服务器 就可以部署项目
- 减少时间
- 都基于java类加载器
区别
部署方式
-
热部署 在服务器运行时重新部署项目
-
热加载 在运行时重新加载class
场景
-
热部署 在生产环境使用
-
热加载 开发环境使用
这种方式难以监控,生产环境使用很危险
使用
SprigBoot 的热部署方式分为两种
SpringLoader 插件
DevTools 工具
SpringLoader 插件的使用
SpringLoader 缺陷: 就是 Java 代码做部署处理。 但是对页面无能为力。
先部署一个项目 前后台很显示内容即可
方式一: 以 maven 插件方式使用 SpringLoader
pom.xml
<!-- springloader 插件 -->
<build>
<plugins><plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.5.RELEASE</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
使用maven命令启动
Edit Configuration 窗口
Goals: 空里写
spring-boot:run
注意: 这种方式的缺点是 Springloader 热部署程序是在
系统后台以进程的形式来运行。 需要手动关闭该进程 java.exe
方式二: 在项目中直接使用 jar 包的方式
lib目录下 添加 springloader 的 jar 包
Run As—>Run Configurations
启动命令:
-javaagent:.\lib\springloaded-1.2.5.RELEASE.jar -noverify
DevTools 工具
SpringLoader 与 DevTools 的区别:
SpringLoader: SpringLoader 在部署项目时使用的是热部署的方式。
DevTools: DevTools 在部署项目时使用的是重新部署的方式
<!-- DevTools 的坐标 -->
<dependency>
<groupId>org