热部署:直接加载整个应用
热加载:在运行时重新加载改变的class
使用场景
热部署更多的是在生产环境使用
热加载则更多的是在开发环境使用
热部署的原理解析
Java类的加载过程
初始化jvm————>产生启动类加载器--->标准扩展类加载器----->系统类加载器---->加载class文件
(子类,自动加载) (子类,自动加载) (交给其父类加载)
类加载的五个阶段
加载---->验证--->准备---->解析---->初始化
热加载实现的三种方式
使用Spring Loaded
实现方式:
1、Maven启动方式
在pom.xml添加依赖
<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.6.RELEASE</version>
</dependency>
</dependencies>
</plugin>
</plugins>
2、run as - Java application
在GirlApplication中配置 Program arguments:-javaagent:F:\project\springloaded-1.2.7.RELEASE.jar -noverify
3、使用Spring—boot——devtools
实现方式:
pom.xml直接添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>test</optional>
</dependency>