`
steven2011
  • 浏览: 31772 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

java利用ClassLoader载入配置文件的深入研究

 
阅读更多
在实践当中利用ClassLoader.getSystemClassLoader().getResource()来读取配置文件时,单元测试时ok,
但把项目部署到jboss-4.2.1.GA服务器后,却莫明奇妙的发现初始化配置异常null. 反复琢磨后才发现原因是:
Eclipse单元测试时ClassLoader.是Eclipse的,而部署后ClassLoader.则是jboss-4.2.1.GA服务器的,部署的项目只是内部级的,配置文件不是公共环境类路径。
具体解决方案源码:
packagecom.web.common.utility.configs;

importjava.io.FileInputStream;
importjava.io.Serializable;
importjava.net.URL;
importjava.util.Properties;

importorg.apache.log4j.Logger;

/***//**
*@comany阿斯达克(上海)深圳分公司
*
@authorsteven.wu
*@date2008-4-28
*@description读取配置文件
*/

publicclassCacheEngineConfigimplementsSerializable...{
privatestaticfinalLoggerlog=Logger.getLogger(CacheEngineConfig.class);
privatestaticPropertiesprop;
static...{
FileInputStreamfis
=null;
try...{
URLconfigURL
=newCacheEngineConfig().getClass().getClassLoader().getResource("com/web/common/utility/configs/webconfig.properties");
fis
=newFileInputStream(configURL.getFile());
prop
=newProperties();
prop.load(fis);
log.info(
"读取配置文件成功.");
}
catch(Exceptione)...{
log.info(
"读取配置文件异常:"+e.getMessage());
}
finally...{
try...{
if(fis!=null)...{
fis.close();
}

}
catch(java.io.IOExceptionioe)...{
log.info(
"关闭配置文件(webconfig.properties)有误:"+ioe.getMessage());
ioe.printStackTrace();
}

}

}

publicstaticPropertiesgetProp()...{
returnprop;
}

publicstaticvoidsetProp(Propertiesprop)...{
CacheEngineConfig.prop
=prop;
}

}


分享到:
评论

相关推荐

    破解java加密的ClassLoader.java,在classloader植入破解代码

    破解java加密的ClassLoader.java,在classloader植入破解代码

    Java ClassLoader定制实例

    在Java编程语言中,ClassLoader是一个至关重要的组成部分,它负责加载类到JVM(Java虚拟机)中。...通过研究"InternalsOfClassloadingSrc"这样的项目,我们可以更深入地学习和实践ClassLoader的定制。

    java classloader

    深入类别载入器.pdf`直接指向ClassLoader的深入讨论,可能包括自定义ClassLoader的实现、双亲委派模型等主题。`CH_05.package与import机制.pdf`可能讲解了与ClassLoader相关的包和导入机制,因为它们与类的组织和...

    java中classLoader的使用

    Java中的类加载器(ClassLoader)是Java虚拟机(JVM)的一个重要组成部分,它负责将类的.class文件从文件系统或者网络中加载到内存中,并转换为对应的Class对象。类加载器的工作流程主要包括加载、验证、准备、解析...

    java classloader classpath 张孝祥

    类加载器(`ClassLoader`)负责将编译后的`.class`文件加载到Java虚拟机(JVM)中执行,而类路径(`ClassPath`)则是指明了这些`.class`文件的位置。本文主要围绕Java类加载器和类路径展开讨论,以加深对Java运行时...

    Java程序中的配置文件的存放和读取[文].pdf

    Java程序中的配置文件管理和读取是软件开发过程中的常见任务,尤其在涉及到数据库连接、环境配置等场景时,配置文件的正确存放和读取至关重要。本文主要探讨如何在Java程序中处理配置文件。 首先,配置文件通常包含...

    理解Java ClassLoader机制

    Java ClassLoader机制是Java运行时环境中的核心组件之一,它负责加载类到JVM(Java虚拟机)中,使得程序能够执行。理解ClassLoader的工作原理对于优化应用性能、处理类加载问题以及实现自定义加载器至关重要。 首先...

    Java_ClassLoader详解

    在 Java 语言中,类加载器(ClassLoader)是 Java 运行时环境的核心组成部分之一,它负责将编译后的 `.class` 文件加载到 JVM 中执行。从 JDK 1.0 开始,随着 Java Applet 的出现以及网络应用的需求增加,类加载机制...

    探究java的ClassLoader及类变量初始化顺序

    理解ClassLoader的工作机制以及类变量初始化的顺序对于深入理解Java运行时环境至关重要。这篇博文将探讨这两个主题。 首先,让我们深入了解Java的ClassLoader。ClassLoader是一个抽象类,它是Java中的一个关键组件...

    深入Java虚拟机_ClassLoader

    《深入Java虚拟机_ClassLoader》是一本专注于Java虚拟机(JVM)中ClassLoader部分的专著,旨在帮助读者深入理解Java程序如何加载、链接和初始化类。ClassLoader是Java平台核心特性的一部分,它负责查找和加载类到JVM...

    测试普通Java程序ClassLoader等级关系的Demo程序

    在Java中,ClassLoader是一个系统组件,它根据指定的全限定类名(包括包名和类名)找到对应的.class文件,并将其转换为运行时的Class对象。Java的类加载机制遵循“双亲委派模型”,这意味着当一个类加载器需要加载类...

    Java ClassLoader原理

    ### Java ClassLoader原理详解 #### 摘要 本文探讨了Java虚拟机(JVM)中的一个重要特性:动态类加载(Dynamic Class Loading)。...了解和掌握这些概念对于深入理解和高效利用Java平台至关重要。

    java中ClassLoader

    Java 中的 ClassLoader 提供了一系列的方法来完成加载类的这个职责,例如加载 Java 应用所需的资源,如图像文件和配置文件等。ClassLoader 还负责加载 Java 应用程序所需的类文件,以便在程序运行时可以正确地调用...

    java ClassLoader机制及其在OSGi中的应用

    Java ClassLoader机制是Java虚拟机(JVM)中一个至关重要的组成部分,它的主要任务是将类的.class文件加载到JVM中,使得程序能够运行。ClassLoader不仅负责类的加载,还涉及类的验证、初始化等一系列过程。理解...

    Understanding the Java ClassLoader

    为了更好地理解和利用Java的这一特性,本篇将详细介绍Java ClassLoader的作用及其工作原理,并通过构建一个示例ClassLoader来帮助读者深入理解如何自定义ClassLoader,从而扩展JVM的功能。 #### 二、ClassLoader...

    Java实现热加载完整代码;Java动态加载class;Java覆盖已加载的class;Java自定义classloader

    让Java支持热加载是个不错的想法。如何做到的呢? 1. 定义好接口和实现类 2. 让代理类通过反射的方式调用实现类,对外暴露的是代理类。 3. 自定义URLClassLoader。检查实现类.class文件的...Java自定义classloader;

    用enum实现单例模式的方法来读取配置文件

    本篇将详细介绍如何利用枚举(enum)来实现单例模式,并结合`Properties`类解析配置文件。 首先,我们来看一下传统的单例模式实现方式,如懒汉式和饿汉式,但这些方法在多线程环境下可能会存在问题。而使用枚举实现...

Global site tag (gtag.js) - Google Analytics