Resources.getResourceAsStream用法

2023-11-11

Resources(com.ibatis.common.resource.*)

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

Resources 类试图简化这些工作,Resources 类常用于以下几种情况:

    1.从类路径加载 SQL Map 配置文件(如 sqlMap-config.xml)。 
    2. 从类路径加载 DAO Manager 配置文件(如 dao.xml)。 
    3. 从类路径加载各种.properties 文件。 

加载一个资源有很多方式,包括:
1.对于简单的只读文本数据,加载为 Reader。
Reader getResourceAsReader(String resource);
2. 对于简单的只读二进制或文本数据,加载为 Stream。

Stream getResourceAsStream(String resource); 

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

File getResourceAsFile(String resource); 

/4. 对于只读的配置属性文件,加载为 Properties。

Properties getResourceAsProperties(String resource); 

/5. 对于只读的通用资源,加载为 URL。
按以上的顺序,Resources 类加载资源的方法如下:

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”,您使用下面的代码加载

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);

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Resources.getResourceAsStream用法 的相关文章

  • oracle表空间迁移transport_tablespace的使用

    问题描述 如果某个表空间有多个用户 那么我们在迁移的时候如果按用户导出导入的话 那将是一个麻烦费事的活 这个时候我们可以通过transport tablespace参数进行表空间迁移 达到一次性迁移整个表空间的目的 下面通过一个实验来讲解整
  • layui table 跨页、翻页记忆选择

    示例 table class layui table table layui 需要初始化的 form layui form layfilter layui layfilter table render
  • linux du命令

    百度百科查到 du show disk usage 查看磁盘使用情况 个人用的比较多的命令是 du h max depth 1 查看这个目录下的文件目录大小 du ah max depth 1查看这个目录下的文件目录包括文件的大小 具体的命
  • 项目经验分享:基于昇思MindSpore实现手写汉字识别

    项目信息Program Info 项目要求 基于MindSpore的实现在线手写汉字识别 主要包括手写汉字检测和手写汉字识别 能较准确的对标准字体的手写文字进行识别 识别后通过人工干预对文本进行适当修正 需要有一定的创新特性 代码达到合入社
  • Android开发学习【Button控件】

    Android开发学习 Day02 Button 与TextView相比 Button增加了两个新属性 书写一个点击显示当前时间的按钮 获取当前时间的java类 xml主界面 MainActivity类 点击事件和长按事件 使用setOnC
  • C++中的头文件.h 和 源文件.cpp 的关系

    在VS中 C 项目 我创建了一个类 会自动创建头文件和源文件 这两个文件有什么关系 如何快速切换 在头文件 h文件中声明的类方法 如何快速在源文件中进行具体实现 在 Visual Studio 中创建 C 项目时 当你添加一个新的类 它会自
  • 游戏外挂内存数据读取

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 源地址 http hi baidu com probill blog item 1d07d11efbd641f01ad576f3 html网络游戏 每一个数据比如你的血值
  • vue 父子间通信 总结

    vue 父子间通信 总结 组件之间通信 父组件向子组件传值 父传子 props 父组件 子组件 实现的效果图 父组件输入密码 子组件接收数据 子组件向父组件传值 子传父 emit eventName args 子组件 父组件 兄弟组件之间的
  • Qt学习笔记(五)【多窗口交互方法】

    在开发应用程序的过程中 难免会遇到多个进行交互的问题 Qt中多窗口交互有多种方式 方法一 利用主窗口指针的方式进行交互 在主窗口中创建子窗口时 会将this指针传递进去 则子窗口就会将主窗口作为父窗口 因此在子窗口中可以通过如下代码获取到主
  • 青海省招标投标投诉处理办法

    http baike baidu com view 12098489 htm
  • 图像均值、标准差、变异系数的意义

    目录 均值图像如何算 方差图像如何计算 变异系数是什么 极差 最大值 最小值 方差 数列中每个元素与均值之差的平方和 标准差 方差的开平方根 变异系数 正态分布 标准差 平均值 数字图像处理的配套视频教程 1 冈萨雷斯 数字图像处理 开始安
  • jquery vue 替代_关于jQuery和Vue两者技术架构的比较分析报告

    关于jQuery和Vue两者技术架构的比较分析报告 jQuery jQuery已经过时了 略做点补充 Zepto也是过时货了 还有Underscore Lodash等 也是过时了 但是过时不代表你就一定不可以再用 或者要从现有项目中清除抛弃
  • Vue路由守卫

    路由守卫的作用 对路由进行权限控制 分类 全局守卫 独享守卫 组件内守卫 1 全局守卫 全局前置路由守卫 初始化和每次路由切换时调用 router beforeEach to from next gt console log 前置路由守卫
  • vue在父组件如何获取子组件的ref

    步骤 1 给父组件定义一个ref 2 子组件也是一样的ref 父组件 div div
  • 【规划】RRT Planer 以及 python实现

    本文转载自头条号作者半杯茶的小酒杯 百度的研发工程师 文章多是自动驾驶相关 推介给大家 RRT Planer 快速搜索随机树 RRT Rapidly ExploringRandom Trees 是一种常见的用于机器人路径规划的方法 他的原始
  • Qt中的JSON操作

    JSON JavaScript Object Notation js对象标记 是一种轻量级的数据交换格式 它基于ECMAScript的一个子集 使用完全独立于编程语言的文本格式来存储和表示数据 简洁和清晰的的层次结构使得JSON成为理想的数
  • ScaleTable matlab,【转】用matlab跑一下下面的程序,带上耳机,你会有发现一些惊喜噢...

    Cripple Pachebel s Canon on Matlab Have fun fs 44100 sample rate dt 1 fs T16 0 125 t16 0 dt T16 temp k size t16 t4 linsp

随机推荐

  • mysql导出binLog日志

    安装 https blog csdn net weixin 43423484 article details 124408565 设置 mysqld 设置3306端口 port 3306 设置mysql的安装目录 这里输入你安装的文件路径
  • 缺少项目经验 & 找工作处处碰壁?这 240 个实战项目请打包带走!

    全部面试找工作时 最常被问到的问题就是 有什么项目经验 对于毕业生来说 我们刚走出校园 还没有工作和项目经验 只能拿学校里练习做的 小游戏 或者 命令行程序 出来 但是 这些项目并不符合现代编程的需要 现代编程需要 前后端分工合作 网络接入
  • 云直播SDK核心功能对比|腾讯云、阿里云、声网、即构等SDK厂商对比

    直播业务概述 大家所熟知的直播平台虎牙 斗鱼 快手 抖音 B站 直播功能看似普遍 但从零到一开发却不简单 直播中运用到的技术难点非常之多 音频视频处理 编解码 前后处理 直播分发 即时通讯等技术 学好任何一项都需要比较高的成本 将它们融合到
  • QT从入门到实战x篇_14_消息对话框(QMessageBox、静态成员函数的访问、修改按键、利用函数返回值为枚举判断按键类型,实现指定动作)

    接上篇 QT从入门到实战x篇 xx 模态和非模态对话框创建 对话框建立在栈上运行完即释放 堆上不删除不可释放 对象在栈上及堆上的生命周期问题需弄懂 在帮助文档中 搜索QMessageBox 会看到其比较重要的几个函数如下 对应的为静态成员函
  • npm start 作用

    在配置phonecat项目时需要运行npm start在本地配置一个服务器环境 npm start首先会安装一系列的必要程序 这些程序依赖package json中的内容 package json中的内容详解如下 依赖包介绍 在克隆项目之后
  • 【Android开发】toast提示

    什么是Toast 在屏幕下方浮现出一个窗口 显示一段时间后又消失 这个可视化组件叫做 Toast 它主要用于提示用户某种事件发生了 如何在添加Toast 最关键的是在事件处理逻辑中加两条语句 定义一个Toast 用makeText 设置要浮
  • 饥荒暴食模式服务器无响应,饥荒暴食模式无银盘图文攻略介绍

    饥荒暴食模式无银盘图文攻略介绍 2018 06 26 17 03 50来源 游戏下载编辑 苦力趴评论 0 饥荒 近日推出了新的游戏模式暴食模式 玩家可以选择单人通关亦或是组队一同任务 下面就为大家带来饥荒暴食模式无银盘图文攻略介绍 基本思路
  • 数据库之数据库设计和E-R模型

    本篇文章介绍数据库设计和E R模型 内容基本是笔者在学习 数据库系统概念 时摘抄总结而来 仅作笔记 实体 联系模型 实体 联系 entity relationship E R 数据模型的提出旨在方便数据库的设计 它是通过允许定义代表数据库全
  • related work

    Traditional approaches e g genetic algorithm GA 2 and ant colony optimization ACO 3 can obtain optimal mapping results b
  • mysql查询练习(三)

    31 查询成绩比该课程平均成绩低的同学的成绩表 mysql gt select from score a where degree lt select avg degree from score b where a cno b cno sn
  • 查看linux系统版本命令

    一 查看内核版本命令 1 root SOR SYS cat proc version Linux version 2 6 18 238 el5 mockbuild x86 012 build bos redhat com gcc versi
  • Robot Framework完整流程学习--分层思想

    一 环境搭建 网上有很多的教程 这里就不多讲了 二 RIDE的界面认识 这里只介绍几个重要常用的功能 其他相信自己都能理解 1 Search Keywords F5 搜索关键字 2 Content Assistance 内容助手 3 Vie
  • java 多线程 总结一

    首先讲一下进程和线程的区别 进程 每个进程都有独立的代码和数据空间 进程上下文 进程间的切换会有较大的开销 一个进程包含1 n个线程 线程 同一类线程共享代码和数据空间 每个线程有独立的运行栈和程序计数器 PC 线程切换开销小 线程和进程一
  • nmap常规使用和参数超细详解 -- 小黑liux武器库详解<宝藏文>

    namp非常强大的主机发现和端口扫描工具 这是web渗透常用的工具 包含四项基本功能 主机发现 端口扫描 版本侦测 操作系统侦测 目录 常规使用 单体拳法 组合拳 参数详解 主机发现 扫描技术 服务版本探测 操作系统检测 防火墙 IDS规避
  • opencv +数字识别

    现在很多场景需要使用的数字识别 比如银行卡识别 以及车牌识别等 在AI领域有很多图像识别算法 大多是居于opencv 或者谷歌开源的tesseract 识别 由于公司业务需要 需要开发一个客户端程序 同时需要在xp这种老古董的机子上运行 故
  • protoBuffer的下载以及使用①

    这里写了一个简单的示例检测proto是否可以使用 使用protoBuf需要提供以下 protobuf java 2 6 1 sources jar protoc 2 6 1 win32 zip 这两个文件我已经添加了附件 当然也可去谷歌官网
  • mysql报错合集

    1 Too many connections 报错 quickBI上报错 数据源执行SQL失败 INTERNAL java sql SQLException com mysql jdbc exceptions jdbc4 MySQLNonT
  • java.lang.ClassCastException: java.lang.Integer cannot be cast to java.math.BigD

    解决 将int类型转成BigDecimal类型就可以了 filtrationList add new Filtration MatchType EQ BigDecimal valueOf 0 fisRemove java lang Clas
  • 东北大学acm第五周周赛

    include
  • Resources.getResourceAsStream用法

    Resources com ibatis common resource Resources 类为从类路径中加载资源 提供了易于使用的方法 处理 ClassLoader 是一项 富于挑战的工作 尤其是应用服务器 容器的情况下 Resourc