`

用Resources类为从类路径中加载资源

阅读更多

Resources类为从类路径中加载资源

Resourcescom.ibatis.common.resource.*

Resources类为从类路径中加载资源,提供了易于使用的方法。处理ClassLoader是一项富于挑战的工作,尤其是应用服务器/容器的情况下。Resources类试图简化这些工作。

Resources类常用于以下几种情况:

1.0 从类路径加载SQL Map配置文件(如sqlMap-config.xml)。

2.0 从类路径加载DAO Manager配置文件(如dao.xml)。

3.0 从类路径加载各种.properties文件。

加载一个资源有很多方式,包括:

1.0 对于简单的只读文本数据,加载为Reader

2.0 对于简单的只读二进制或文本数据,加载为Stream

3.0 对于可读写的二进制或文本文件,加载为File

4.0 对于只读的配置属性文件,加载为Properties

5.0 对于只读的通用资源,加载为URL

按以上的顺序,Resources类加载资源的方法如下:

Reader getResourceAsReader(String resource);

Stream getResourceAsStream(String resource);

File getResourceAsFile(String resource);

Properties getResourceAsProperties(String resource);

Url getResourceAsUrl(String resource);

在以上每个方法中,加载资源和加载Resources类的为同一个ClassLoader,或者,如果失败,将使用系统的ClassLoader。在某些环境下(比如某些应用服务器),ClassLoader可能是个麻烦事,您可以指定所使用的ClassLoader(比如使用加载应用的ClassLoader)。上面每个方法都有相应把ClassLoader作为参数的方法。它们是:

Reader getResourceAsReader (ClassLoader classLoader, String resource);

Stream getResourceAsStream (ClassLoader classLoader, String resource);

File getResourceAsFile (ClassLoader classLoader, String resource);

Properties getResourceAsProperties (ClassLoader classLoader, String resource);

Url getResourceAsUrl (ClassLoader classLoader, String resource);

以上方法的resource参数名称应该是全限定名,加上全文件/资源名。例如,如果在类路径中有资源“com.domain.mypackage.MyPropertiesFile.properties”,您使用下面的代码加载

 

资源为Properties(注意,资源名前面不需要斜杠/)。

String resource = “com/domain/mypackage/MyPropertiesFile.properties”;

Properties props = Resources.getResourceAsProperties (resource);

同样地,您可以从类路径加载SQL Map配置文件为一个Reader。假设它在类路径的properties目录下(properties.sqlMap-config.xml)。

String resource = “properties/sqlMap-config.xml”;

Reader reader = Resources.getResourceAsReader(resource);

SqlMapClient sqlMap = XmlSqlMapBuilder.buildSqlMap(reader);

 

文章出处:DIY部落(http://www.diybl.com/course/1_web/webjs/200877/131910.html)

分享到:
评论

相关推荐

    jar包中类的加载及jar中资源的使用

    4. Spring框架:Spring框架的`Resource`接口和`ResourceLoader`类提供了高级的资源操作,支持从不同来源(包括`jar`包)加载资源。 5. 配置文件:在`jar`包中常包含配置文件,如`application.properties`,可以使用...

    把resources文件转换为resx资源文件

    2. 反序列化`ImageListStreamer`:使用`BinaryFormatter`类从`MemoryStream`中反序列化`ImageList`对象。 3. 提取单个图像:遍历`ImageList`对象,对每个`Image`调用`Save`方法,将其保存为`.bmp`文件。注意,`Save`...

    Android动态加载(下)——加载已安装APK中的类和资源

    加载资源则相对复杂,因为Android的资源管理是在编译时就确定的。要加载外部APK的资源,我们需要利用Resources类和AssetManager。首先,通过AssetManager的addAssetPath()方法添加目标APK的路径,然后创建一个新的...

    自定义Java类加载器

    3. **System ClassLoader**:也称为应用类加载器,负责加载`CLASSPATH`环境变量或`-cp`、`-classpath`命令行参数指定的类路径中的类。 现在,当我们创建自定义类加载器`MyClassLoader`时,我们需要实现`java.lang....

    ResourceBundle与Properties读取maven中resources目录下的资源文件

    - **load(InputStream inStream)**: 此方法用于从`.properties`文件对应的输入流中加载属性列表。例如: ```java Properties pro = new Properties(); FileInputStream in = new FileInputStream("a.properties")...

    android动态加载外部资源文件

    但要从外部apk加载资源,需要跳过这个系统默认的机制。 三、加载外部apk中的资源 1. 获取外部apk的路径:首先,你需要在应用的沙盒目录或其他允许的地方存储外部apk文件,并获取到它的完整路径。 2. 解析apk:使用...

    基础篇--resources资源

    例如,在Java中,我们可以通过`getResource()`或`getResourceAsStream()`方法从类路径中加载资源。在Python中,我们可以使用内置的`open()`函数或者`pkgutil`模块来访问资源文件。正确地引用资源是确保程序正常运行...

    Jar包中如何正确地加载资源文件博文中用到的测试项目源码

    本篇文章将详细探讨如何在Java中正确地从JAR包中加载资源文件,并提供相应的源码示例。 首先,理解Java类路径(classpath)是关键。类路径是指Java虚拟机(JVM)查找.class文件和其他资源文件的路径。当你运行一个...

    Spring Boot项目打成jar包后,下载resources目录下文件为空的demo

    - **正确设置路径**:在获取或下载资源时,应使用`ClasspathResource`或`ResourceLoader`来获取正确的类路径资源。例如: ```java Resource resource = new ClassPathResource("static/filename.ext"); ``` - *...

    cocos2d-x多线程异步加载资源

    3. **资源加载逻辑**:在`loadResources()`函数中,你可以使用Cocos2d-x的`Director`和`Cache`类来加载资源。例如,加载图片资源: ```cpp void LoadingLayer::loadResources() { auto director = Director::...

    动态加载贴图和模型2

    在Unity3D游戏开发中,动态加载资源是提高性能和优化游戏体验的重要技术。动态加载贴图和模型可以使游戏在不启动时就加载所有资源,从而减少启动时间,并且可以根据玩家的需求或游戏进程按需加载,节约内存。本文将...

    WPF 如何找到资源文件路径包含 # 号的文件

    在代码后面,你可以使用`UriBuilder`类来构建正确的URI,然后再转换为`Stream`来加载资源: ```csharp var uri = new Uri("pack://application:,,,/Resources/MyImage#1.png", UriKind.Absolute); Stream stream...

    Qt加载字体文件删除字体文件

    本篇文章将详细讲解如何在Qt中加载并使用非系统字体,以及如何在程序运行完毕后正确删除这些字体文件。 首先,让我们了解Qt中的`QFontDatabase`类,它是处理字体库的核心工具。`QFontDatabase`可以用来加载、查询和...

    SpringMVC访问静态资源

    为了提高性能,Spring MVC允许你在部署时将静态资源打包在WAR文件中,而不是放在类路径下。此外,使用CDN(内容分发网络)可以进一步提高静态资源的加载速度,特别是对于全球范围内的用户。 ### 8. 资源版本控制 ...

    qt5加载qss及qss中引用资源

    - **使用QResource**:`QResource`类可以帮助在程序运行时加载资源,可以方便地管理QSS中引用的资源。 4. **QSS的高级特性** - **状态选择器**:QSS支持根据控件的状态(如鼠标悬停、选中等)应用不同的样式。 -...

    ApplicationResources.properties

    在上述代码中,`/ApplicationResources.properties`表示资源文件相对于类路径的位置,`getProperty()`方法用于获取特定键对应的值。 除了基础的键值对,`ApplicationResources.properties`还可以包含更复杂的配置,...

    如何加载jar包中的spring配置文件

    加载jar包中的Spring配置文件需要对Spring的类路径加载机制有深入理解。通过`ClassPathResource`,我们可以定位并加载jar包内的配置,然后应用到`ApplicationContext`。在SSM整合的项目中,正确地加载这些配置文件...

    spring boot加载资源路径配置和classpath问题解决

    Classpath是Java应用程序中的一个概念,指的是Java应用程序加载资源文件和类文件的路径。Classpath可以理解为是一个定位资源的入口。Classpath中可以存放各种资源配置文件,如init.properties、log4j.properties、...

    C# WinForm 读取内嵌资源范例

    这个项目展示了如何在C# WinForm 2.0应用中创建一个窗体,从内嵌资源中加载图片并显示在窗体上,或者读取文本资源并显示在文本框中。 通过学习和理解这个范例,开发者可以掌握在C# WinForm应用中管理和使用内嵌资源...

    Unity 网络图片加载与本地图片读取demo

    Debug.LogError("无法加载资源:" + localImagePath); } } } ``` 这里,`localImagePath`是相对Resources目录的路径。 **File/I/O操作**: 如果图片不在Resources中,你可能需要直接读取硬盘上的文件。这通常...

Global site tag (gtag.js) - Google Analytics