一、前言1、更新代码的场景(1)当线上服务器出现问题时,有些时候现有的手段不足以发现问题所在,可能需要追加打印日志或者增加一些调试代码,如果我们去改代码重新部署,会破坏问题现场,可以通过热部署的手段来增加调试代码(2)线上出现紧急bug,通过Review代码找到问题,修改好后打包部署的流程可能比较久,可以通过热部署代码及时解决问题二、Arthas的使用  使用阿里巴巴开源的Java诊断工具---
转载 2023-07-19 14:15:55
324阅读
jdk: 17springboot:2.6.6一、需求正在运行的springboot程序,上传一个jar包,完成对已有接口的实现(更新),如果不用了随时可以卸载掉。并且插件内部可以使用主程序里边已有的各类bean。二、实现思路我们的springboot应用程序提前预留好了扩展接口,但是在应用程序内部并未做任何的实现,而是交由独立的插件来完成。jar上传之后,涉及到了jar的热加载,我们可以使用&n
转载 2023-11-17 15:25:45
453阅读
本文章只解决tomcat部分jar包热加载:在开发项目工程中,Tomcat的lib目录下面有几百个jar包,但是只希望让lib包下面的某几个jar包在更改代码后动态生效而且不重启步骤:1. Idea配置jrebel 2. Tomcat jrebel的配置 3. Idea配置连接 tomcat jrebel 4. 测试远程部署项目部署的那些问题 1. idea 中配置jrebel&nb
转载 2023-12-08 14:01:52
246阅读
一、应用场景        你参与开发的项目已经部署到Tomcat中对外发布了,项目中有一个支付功能,你默认走的是微信支付,假如你有好好地进行系统软件设计的话,那这个支付功能必然不是面向某个具体应用而实现的,而应该是面向抽象(面向接口编程)。也就是支付功能被抽取到了统一的接口中,微信支付实现该接口的具体做法就是调用微信支付接口,支付宝同理,其他支付实现也一样
转载 2024-01-07 21:26:21
488阅读
基本了解: 当我们开启部署之后,服务器不用重新加载(我们的项目也不用被重启),我们修改过后的代码就能生效。关于部署:   重启:Restart 自定义开发代码,包含类、页面、配置文件等,加载位置restart类加载器重载:Reload jar包,加载位置base类加载器需要添加maven坐标:<dependency> <g
### Java Jar更新 在使用Java开发过程中,我们经常需要对程序进行升级和更新。其中一种常见的更新方式是通过jar更新来实现。通过jar更新,我们可以在不停止服务的情况下,动态地替换程序中的jar包,以实现程序的更新和升级。 #### 更新原理 更新的原理是在程序运行时动态加载新的jar包,替换原有的jar包。通常情况下,我们可以通过类加载器来实现更新。当程序需要
原创 2024-05-11 05:02:40
305阅读
JDK重要版本更新功能JDK1.2基础体系拆分:J2SE(面向桌面应用程序开发)、J2EE(面向企业级应用开发程序开发)、J2ME(面向手机等移动终端开发)引入集合(Collection)框架;对字符串常量做内存映射;引入 JIT(Just In Time) 编译器;引入对打包的 Java 文件进行数字签名;引入控制授权访问系统资源的策略工具;引入 JFC(Java Foundation Clas
# Java更新jar包 在Java开发中,更新是指在运行时动态修改代码,并立即生效而无需重启应用程序。这种特性在开发过程中非常有用,特别是当应用程序需要频繁地进行修改和测试时。 ## 为什么需要更新 传统的Java开发流程中,每次修改代码后,都需要重新编译、重新打包、重新部署并重启应用程序。这个过程非常繁琐,耗时且容易出错。而更新则可以大大提高开发效率,减少重复劳动,节省开发时间。
原创 2023-07-28 17:56:20
278阅读
垃圾回收器回收器名称回收对象和算法回收器类型Serial新生代,复制算法线程(串行)Parallel Scavenge新生代,复制算法并行的多线程回收器ParNew新生代,复制算法并行的多线程回收器Serial Old老年代,标记整理算法单线程(串行)Parallel Old老年代,标记整理算法并行的多线程回收器CMS老年代,标记清除算法并发的多线程回收器G1新生代,老年代;标记整理 + 化整为零
买了阿里云服务器,因为装的是win版本的;虽然每次发布jar包可以直接复制和启动;但是这个涉及到网络的问题,如果网络慢一点的话复制一个jar包进行需要好多分钟;于是就萌生了写一个网页实现更新jar包和启动jar包的渣渣网页;目前测试基本完成,就差优化界面和整合逻辑,基本的功能已经具备;主要分三部分完成。             
转载 2023-08-20 17:30:47
142阅读
对于Java应用程序来说,部署就是在服务器运行时重新部署项目部署在java应用中可以说是非常常见的一个技术了,springboot内部就使用了部署。注意,部署与热加载是不同的技术,部署一般用在生产环境,而热加载一般用在开发环境。部署是对整个应用的整体替换,而热加载是对某个class进行替换。 要想实现部署,我们必须对java的classloader机制有一定的了解,当然了解
转载 2023-09-23 00:32:49
469阅读
# Docker更新Jar包 在现代软件开发中,持续集成和持续部署变得越来越重要。为了实现这一目标,我们需要确保我们的应用程序能够灵活地更新和部署。Docker作为一种轻量级容器技术,为我们提供了一种便捷的方式来打包、发布和运行应用程序。本文将重点介绍如何使用Docker更新Jar包,以实现应用程序的快速更新和部署。 ## 什么是Docker Docker是一种容器化技术,允许开发人员将
原创 2024-06-17 04:12:55
102阅读
前言某些项目在进行私有化部署的时候遇到了一些问题:内网隔离环境,一些npm包需要先下载到u盘再拷贝到对应的机器上进行安装,安装起来很麻烦。测试环境下,代码和机器配置调试好了,部署到线上机器的时候却出现了问题。线上机器迁移的时候,又需要在新的机器上进行机器配置了调试,等于又把之前要做的事情重来一遍。在有部署文档的情况下交给其他人去给不同的用户部署的时候,自己还需要一直盯着,不然出问题了其他人也不一定
转载 2024-08-15 16:54:26
61阅读
卸载旧的JAVA版本并安装新的,我摸索的步骤如下:卸载旧版本卸载原来的jdk及jre,在控制面板->卸载程序中可以找到,我原先的版本是java 7,这是升级后的java 8: 选中软件就可以卸载。下载新版本卸载之后在官网下载新的版本: 地址 https://www.java.com/zh_CN/download/windows-64bit.jsp 得到如下exe文件:安装双击上述exe文件完
转载 2023-05-18 17:28:49
308阅读
一、部署和热加载 在应用运行的时升级软件,无需重新启动的方式有两种,部署和热加载。 对于Java应用程序来说,部署就是在服务器运行时重新部署项目,热加载即在在运行时重新加载class,从而升级应用。 区别: 热加载:服务器会监听 class 文件改变,包括web-inf/class,wen-inf/lib,web-inf/web.xml等文件,若发生更改,则局部进行加载,不清空sessio
转载 2023-09-16 11:42:06
847阅读
Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?线上遇到某个用户的数据处理有问题,但线上同样无法 d
转载 2023-06-28 16:47:17
212阅读
Java更新在持续交付的时代,重新部署一个新的版本只需要点击一下按钮。但在有的情况下,重新部署过程可能比较复杂,停机是不被允许的。所以JVM提供了另外一种选择:在不重启应用的前提下进行小幅改动,又称更新。对于某些大型的应用来说,每次的重启都需要花费大量的时间成本,所以,如果能在不重启虚拟机的情况下更新一个类,在某些业务场景下变得十分重要。比如很多脚本语言就支持替换,例如服务器端PHP,只要替
部署是指在不关闭或重启服务的情况下,更新Java类文件或配置文件,实现修改内容生效;通过热部署,可提高开发效率,节省程序打包重启的时间,同时,可实现生产环境中需要不停机或重启的服务的升级。1.部署实现原理 对于Java应用程序,部署就是程序运行时实现Java类文件更新。要实现程序在运行中进行程序更新,就需要让java虚拟机在检测到Java类文件发生变化时,把原来的类文件卸载,并重新加载新的类
转载 2023-08-10 14:28:21
424阅读
近期开发系统过程中遇到的一个需求,系统给定一个接口,用户可以自定义开发该接口的实现,并将实现打成jar包,上传到系统中。系统完成部署,并切换该接口的实现。定义简单的接口这里以一个简单的计算器功能为例,接口定义比较简单,直接上代码。public interface Calculator { int calculate(int a, int b); int add(int a, int b); }&
转载 2023-08-10 16:54:39
699阅读
# Java更新部署的探索 在现代软件开发中,尤其是微服务架构日益普及的背景下,快速的迭代和发布变得极为重要。Java更新部署技术在这个过程中扮演着重要角色。这两者虽然经常被混淆,但它们的概念和实现方式有着明显的区别。 ## 更新部署的区别 - **更新** 是指在不停止应用的情况下,动态加载和替换类的能力。这通常涉及到改变某些类的代码,而不需要重启整个应用。 -
原创 2024-10-29 04:34:00
115阅读
  • 1
  • 2
  • 3
  • 4
  • 5