`

java 热部署

    博客分类:
  • java
 
阅读更多
第一种方案:重新加载整个项目的示例:如Tomcat、Jetty;默认都是定期检测class文件是否有修改,如果有,先卸载当前容器,再重新加载整个项目。

tomcat 热部署只需要在Host context 配置下reloadable=true

jetty热部署需要搭配插件, jetty-maven-plugin或run-jetty-run


第二种方案:HotSpot虚拟机的HotSwap 不支持类更改,只需在ide开启debug即可

                       HotSwap补丁dcevm(http://ssw.jku.at/dcevm/binaries/)

第三种方案:java agent + Instrumentation 有如下产品:

      jrebel(http://zeroturnaround.com/software/jrebel/)

                        spring-loaded(https://github.com/spring-projects/spring-loaded)

                        fakereplace( https://github.com/fakereplace/fakereplace)

使用jetty+jrebel需要注意这么一个问题,由于jetty支持virtualhost,故在jetty配置了多个项目,假如两个项目出现了包名,类名,方法名一致的时候,前端请求只会访问先配置的方法,这是由于jrebel并不是修改原类,而是新增一个类来指向原类,可能也是jrebel一个没完善的地方。

第四种方案:osgi
期待以后的jdk能解决热部署问题
分享到:
评论

相关推荐

    支持Java热部署的插件

    Java热部署技术是一种提高开发效率的重要工具,它允许开发者在运行时修改代码并立即生效,无需重新启动应用程序服务器。在传统的开发过程中,每次修改代码后都需要重新编译、打包,然后重启服务器才能看到更改的效果...

    实现Java热部署的几种解决方案.docx

    Java 热部署解决方案详解 Java 热部署是指在不停止应用程序的情况下,动态地更新和替换应用程序中的类、方法或资源。这种技术可以提高开发效率、缩短开发周期、降低维护成本。今天,我们将讨论实现 Java 热部署的几...

    java热部署

    java热部署

    java热部署工具

    Java热部署工具是一种在开发过程中无需重启应用服务器即可更新代码或资源的技术,极大地提高了开发效率。热部署使得开发者能够在运行时动态替换、添加或移除类,而不影响应用程序的正常运行。这种技术对于大型的、...

    深入探索 Java 热部署

    Java 热部署技术是开发过程中的一大挑战,它旨在实现在不重启 Java 虚拟机(JVM)的情况下更新应用程序的部分代码。由于 JVM 默认仅在启动时加载类,一旦类加载,即使原始的 .class 文件发生变化,JVM 也不会自动...

    jrebel_6.5.2_Java热部署插件

    **Java热部署插件——JRebel 6.5.2** JRebel是一款高效便捷的Java应用热部署工具,它的出现极大地提升了开发者的效率,避免了在开发过程中频繁重启应用服务器来查看代码更改的效果。标题提到的是"jrebel_6.5.2",这...

    关于java热部署知识.doc

    Java热部署技术主要指的是在Java应用运行过程中,无需重启服务就能更新代码并立即生效的能力。这对于开发阶段提高效率和减少停机时间至关重要。虽然标准的Java虚拟机(JVM)并不直接支持类的动态加载和替换,但是...

    rebu.zip springboot+mybatis+thymeleaf 热部署 java 热部署页面访问

    本项目“rebu.zip”显然整合了这三个框架,旨在创建一个完整的Java Web应用程序,同时支持热部署功能,以提升开发效率。 首先,让我们深入了解每个框架的核心特性: 1. **SpringBoot**:SpringBoot是由Pivotal团队...

    Java 热部署操作笔记。Spring Tool Suite

    Java 热部署操作笔记。Spring Tool Suite.网上能看到的资源多事mvn 的,再这个文档里面,很详细的介绍了.yml元素的写法。和注意事项。

    java开发热部署

    有没有在为修改java代码 反复重启tomcat而烦恼 下载热部署一切不成问题。内容:1.热部署 2.分给myeclipse 1g内存

    深入学习Java 热部署的知识

    总的来说,Java热部署是一项技术挑战,需要深入理解JVM的类加载机制、字节码操作以及可能的工具支持。通过自定义类加载器和利用ASM等字节码库,可以实现特定类的热部署,从而提高开发效率并减少系统中断的时间。然而...

    Java类热替换(热部署)源码

    在Java开发过程中,为了提高开发效率和调试便捷性,我们经常需要实现类的热替换(Hot Deployment),也就是在不重启应用的情况下更新或替换已加载的类。Java类热替换技术通常涉及类加载器(ClassLoader)的自定义...

    IntelliJ IDEA 中使用jRebel进行 Java 热部署教程图解

    Java热部署技术是一种提高开发效率的方法,它允许程序员在不重启应用的情况下就能看到代码改动的效果。jRebel是一款专门用于实现这一目标的JVM插件,由Zeroturnaround公司开发。这款工具使得开发者能够在代码修改后...

    Jrebel 基于TOMCAT实现项目修改热部署

    下面将详细介绍 JRebel 如何与 Tomcat 集成,实现项目修改后的热部署。 **1. JRebel 的工作原理** JRebel 是通过动态类加载技术,实现在运行时替换已经加载的类,以达到热部署的效果。它拦截了 JVM 的类加载过程,...

    美团IDEA插件实现Java应用的热部署实践

    美团IDEA插件实现Java应用的热部署实践 热部署是指在应用程序运行时升级软件,而不需要重新启动应用。对于Java应用程序来说,热部署就是在运行时更新Java类文件,同时触发Spring以及其他常用第三方框架的一系列重新...

    Erlang 中的Module级别热部署

    ### Erlang中的Module级别热部署 #### 一、引言 Erlang 是一种专为构建高并发、容错性强的分布式系统而设计的编程语言。它的独特之处在于支持轻量级进程(也称为协程)和热部署能力。本文将深入探讨Erlang 中的 ...

    JAVA代码热部署,在线不停服动态更新

    本地debug的时候,可以实时编译并更新代码,线上也可以不停服来动态更新类,即所说的java热部署。  JDK代理的两种方式:  1.premain方式是Java SE5开始提供的代理方式,但其必须在命令行指定代理jar,并且代理类...

    JRebel6.4.3热部署

    JAVA热部署安装及配置,实现IDEA无需频繁重启服务。通过自己手动配置,绝对能用!

    深入探索Java热部署

     在 Java 开发领域,热部署一直是一个难以解决的问题,目前的 Java 虚拟机只能实现方法体的修改热部署,对于整个类的结构修改,仍然需要重启虚拟机,对类重新加载才能完成更新操作。对于某些大型的应用来说,每次...

Global site tag (gtag.js) - Google Analytics