1.背景 一些关键应用不能轻易停止服务,可以尝试在线升级,即在不停止正在运行的系统的情况下进行类(对象)的升级替换。 Java 的 ClassLoader 正是实现这项技术的基础。 2.思想 3.相关类 4.示例 时间: 2024-09-14 19:34:02
构建基于 Java 的在线升级系统 对于许多关键性业务或者庞大的 Java 系统来说,如果必须暂停系统服务才能进行系统升级,既会大大影响到系统的可用性,同时也增加了系统的管理和维护成本.因此,如果能够方便地在不停止系统业务的情况下进行系统升级,则可以很好地解决上述问题.在本文中,我们将基于实例,对构建在线升级 Java 系统的基础技术和设计原则进行了深入的讲解.相信读者能够根据文中的技术构建出自己的在线升级系统来. Java ClassLoader 技术剖析 在本文中,我们将不对 Java
应用服务器一般都支持热部署(Hot Deployment),更新代码时把新编译的确类 替换旧的就行,后面的程序就执行新类中的代码.这也是由各种应用服务器的独 有的类加载器层次实现的.那如何在我们的程序中也实现这种热加载功能呢?即 要在虚拟机不关闭的情况下(比如一个),换个类,JVM 就知道加载这个新类,执 行新类中的逻辑呢?下面就简单演示这样一个热加载的例子,首先大致了解一下 类加载器. 标准 Java 启动器的类加载器层次 1. 引导类加载器(bootstrap): 加载内核 API,如 rt
前言 前段时间,Android平台上涌现了一系列热修复方案,如阿里的Andfix.微信的Tinker.QQ空间的Nuva.手Q的QFix等等. 其中,Andfix的即时生效令人印象深刻,它稍显另类,并不需要重新启动,而是在加载补丁后直接对方法进行替换就可以完成修复,然而它的使用限制也遭遇到更多的质疑. 我们也对代码的native替换原理重新进行了深入思考,从克服其限制和兼容性入手,以一种更加优雅的替换思路,实现了即时生效的代码热修复. Andfix回顾 我们先来看一下,为何唯独Andfix能够做
问题描述 如题百度,google都找了<?xmlversion='1.0'encoding='gb2312'?><Contextpath="/webapp"docBase="F:myEclipseJAVABidPro-zhwebapp"reloadable="true"debug="0"privileged="true"antiResourceLocking="true"
java类的加载机制 1.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构.类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口. 类加载器并不需要等到某个类被"首次主动使用"时再加载它,JVM规范允许类加载器在预料某个类将要被使用时就预先加载
最近在Linux下的PHP支持Java类,我把调试笔记经过整理总结后写出来,希望对大家今后的调试会有所帮助. 系统环境: Redhat 9.0 Apache-1.3.27 Mysql3.23-54a-11 Php-4.32 j2sdk1.4.1_03 安装配置: 1.mysql使用的是redhat9自带的rpm包,不介绍安装了,jdk的安装也很简单,我们把jdk安装到/usr/java/j2sdk1.4.1_03 并在/etc/profile设置jdk环境参数. 2.编译安装apache tar
对象 边城狂人 Java 类中类属性 (static 变量) 和对象属性 (非 static 变量) 的初始化顺序可以用如下程序测试: /** * @(#) Test.java * @author fancy */ public class Test { static String a = "string-a"; static String b; String c = "stirng-c"; String d; static { printStatic("
数据|数据库 1 建立系统ODBC 数据源photo(本次使用的是Oracle 9i,详细配置如有不懂这处再和我联系)2 编译DataBaseConnection.java文件 将其编译文件放入到PHP支持的类文件目录中 package com.inberkong.util;/******************************************************* * Programe File :复件缓冲池DataBaseConnection.java * Creat
方式一:把Java类注册成ActiveX组件步骤一:创建一个Java类,命名为Test.javapublic class Test{ public String getWord() { return "Hello World"; }}步骤二:编译成class文件,并拷贝到系统盘:\WINNT\java\trustlib目录下,然后注册成ActiveX组件javareg /register /class:Test /progid:Test步骤三:在ASP中使用Set obj=Create