天天看点

Java热部署与热加载热部署与热加载联系热部署与热加载的区别热部署与热加载在实现原理上的区别使用场景热部署原理解析类加载的五个阶段热部署原理-Java类加载器特点Java类的热部署

热部署与热加载联系

  • 不重启服务器编译/部署项目
  • 基于Java的类加载器实现

热部署与热加载的区别

  • 热部署在服务器运行时重新加载部署项目
  • 热加载运行时重新加载class

热部署与热加载在实现原理上的区别

  • 热部署直接重新加载整个应用
  • 热加载在运行时重新加载class

使用场景

  • 热部署更多的是在生产环境使用
  • 热加载则更多的是在开发环境中使用

热部署原理解析

Java热部署与热加载热部署与热加载联系热部署与热加载的区别热部署与热加载在实现原理上的区别使用场景热部署原理解析类加载的五个阶段热部署原理-Java类加载器特点Java类的热部署

类加载的五个阶段

Java热部署与热加载热部署与热加载联系热部署与热加载的区别热部署与热加载在实现原理上的区别使用场景热部署原理解析类加载的五个阶段热部署原理-Java类加载器特点Java类的热部署

热部署原理-Java类加载器特点

  1. 由AppClass Loader(系统类加载器)开始加载指定的类。
  2. 类加载器将加载任务交给其父类,如果父类找不到,再由自己去加载。
  3. Bootstrap Loader(启动类加载器)是最顶级的类加载器。

Java类的热部署

类的热加载

public class MyClassLoader extends ClassLoader {
	
	@Override
	protected Class<?> findClass(String name) throws ClassNotFoundException {
		byte[] data = this.loadClassData(name);
		return this.defineClass(name, data, 0, data.length);
		}
	
	}
           

配置Tomcat

原生热部署

直接把项目web文件放在webapps里

自定义路径热部署

在tomcat\conf\sever.xml中的内部添加标签。

Java热部署与热加载热部署与热加载联系热部署与热加载的区别热部署与热加载在实现原理上的区别使用场景热部署原理解析类加载的五个阶段热部署原理-Java类加载器特点Java类的热部署

通过配置Tomcat实现热部署

在 %tomcat_home%\conf\Catalina\localhost中添加一个XML

Java热部署与热加载热部署与热加载联系热部署与热加载的区别热部署与热加载在实现原理上的区别使用场景热部署原理解析类加载的五个阶段热部署原理-Java类加载器特点Java类的热部署

继续阅读