public class LoadPropTest {
public static void main(String[] args) throws IOException {
//一、Properties的load方法加载文件输入流
Properties props=new Properties();
File file1=new File("F:/Program Files/Java/IdeaProjects/MyBatisDemo/src/db.properties");
File file2=new File("src/db.properties");
File file3=new File("src/com/biguo/datasource/jdbc.properties");
//File file4=new File("jdbc.properties"); 报错,引起了我对相对路径的思考
FileInputStream fileInputStream1=new FileInputStream(file3);
FileInputStream fileInputStream2=new FileInputStream("src/com/biguo/datasource/jdbc.properties");
props.load(fileInputStream2);
System.out.println(props.getProperty("url")); //二、通过类加载器 加载配置文件
Properties p = new Properties();
InputStream in = LoadPropTest.class.getClassLoader().getResourceAsStream("com/biguo/datasource/jdbc.properties");
p.load(in);
String name = p.getProperty("username");
System.out.println(name); //三、基名,文件必须是key=value的properties文件
ResourceBundle bundle = ResourceBundle.getBundle("com/biguo/datasource/jdbc");
String driver = bundle.getString("username");
System.out.println(driver); }
}

  如方式一所示,构造文件对象File时的路径,是以工程所在路径为基础的。所以指定的文件在“src”下,都需要添加“src”。

  而方式二和方式三,有个关键词“Resource”,这种情况下通常是以Package路径作为寻找路径,默认是以“src”文件夹为基础的。

  MyBatis中在mybatis-config.xml中加载jdbc.properties时,需要在Configuration的标签最前面添加如下元素:

<properties resource="com/biguo/datasource/jdbc.properties">
<!-- 其中的属性就可以在整个配置文件中被用来替换需要动态配置的属性值。 -->
<!--<property name="password" value="pigu20ing" />-->
</properties>

  这里也以resource属性指定加载路径。

  如果把resource指定为直接放在src文件下的db.properties文件,即resource="db.properties",也可以运行成功。

  关于.properties文件,Java中有对应类Properties。Properties类继承自Hashtable,是由一组key-value的集合,常用于为各种配置提供数据。

  以下是.properties文件的内容格式:

  • 注释内容由 # 或者! 开头
  • key,value之间用 = 或者 : 分隔。一行中既有=也有:时,第一个(或者=或者:)将作为key,value分隔符。
  • key 不能换行,value可以换行,换行符是\ ,且换行后的\t、空格都会忽略。
												

MyBatis Java不同方式加载文件时的路径格式问题、Mybatis中加载.properties文件的更多相关文章

  1. Dialog BLE 学习之 修改分散加载文件 (2)

    最近搞Dialog的BLE SDK,发现空间不够了,询问原厂,得知可以通过调整分散加载文件而增加空间,一方面是有42KB+8KB的硬件基础,另一方面是原有的程序限制为38KB+8KB.故顺便学习了下把 ...

  2. 无法加载文件 **.ps1,系统中禁止执行脚本

    控制台执行命令后出现 无法加载文件 ******.ps1,因为在此系统中禁止执行脚本.有关详细信息,请参阅 "get-help about_signing" 在控制台执行命令: s ...

  3. 服务 在初始化安装时发生异常:System.IO.FileNotFoundException: "file:///D:\testService"未能加载文件或程序集。系统找不到指定文件。

    @echo.@if exist "%windir%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe" goto INSTALL ...

  4. 错误:创建 cachingConfiguration 的配置节处理程序时出错: 未能加载文件或程序集“Microsoft.Practices.EnterpriseLibrary.Caching,

    问题: 错误:创建 cachingConfiguration 的配置节处理程序时出错: 未能加载文件或程序集“Microsoft.Practices.EnterpriseLibrary.Caching ...

  5. 使用Autofac部署IIS6.0时未能加载文件或程序集“System.Core, Version=2.0.5.0...“

    错误信息 .net4.0项目中使用autofac这个IOC容器,在部署在win2003+iis6时出现以下错误. “/”应用程序中的服务器错误. --------------------------- ...

  6. 创建 userSettings/Microsoft.SqlServer.Configuration.LandingPage.Properties.Settings 的配置节处理程序时出错: 未能加载文件或程序集“System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”或它的某一个依赖项。系统没找到指定的文件

    创建 userSettings/Microsoft.SqlServer.Configuration.LandingPage.Properties.Settings 的配置节处理程序时出错: 未能加载文 ...

  7. 未能加载文件或程序集“BLL”或它的某一个依赖项。生成此程序集的运行时比当前加载的运行时新,无法加载此程序集。

    今天使用VS2012创建项目的时候,考虑到项目中代码的重用性以及清晰简洁性,搭建了一个三层架构,但是在项目运行的时候,总是报错: “未能加载文件或程序集“BLL”或它的某一个依赖项.生成此程序集的运行 ...

  8. .net应用程序安装部署时异常 Error 1001. 在初始化安装时发生异常 System.BadImageFormatException:未能加载文件或程序集 的解决办法【成功解决】

    采用.net 4.0框架开发的一个桌面应用程序在某学校的一体机(Windows7的32位操作系统)上做安装部署时抛出异常,安装程序回滚,多次尝试仍不成功. Error 1001. 在初始化安装时发生异 ...

  9. IIS配置Asp.net时,出现“未能加载文件或程序集“System.Web.Extensions.Design, Version=1.0.61025.0”

    如果出现未能加载文件或程序集“System.Web.Extensions.Design, Version=1.0.61025.0, 主要是没有安装.net framwork 3.5,安装一下就行了. ...

随机推荐

  1. fastjson序列化和反序列化报com.alibaba.fastjson.JSONException: autoType is not support异常问题,解决方案整合

    1.问题起因 2017年3月15日,fastjson官方发布安全升级公告,该公告介绍fastjson在1.2.24及之前的版本存在代码执行漏洞,当恶意攻击者提交一个精心构造的序列化数据到服务端时,由于 ...

  2. APP界面架构设计

    作为PM,信息架构和页面流的设计想必烂熟于心,当确定好产品战略层和范围层即为何种目标用户提供何种服务后,就要着手搭建功能架构,将目标功能通过良好的用户体验传递给用户,目的是高效解决用户痛点,从而实现价 ...

  3. .NET Standard

    A formal specification of the APIs that are common across .NET implementations What is .NET Standard ...

  4. VUE数组操作方法的局限

    1.不能通过索引值直接设置一个项: vm.items[indexOfItem] = newValue 但是可以用set方法设置: Vue.set(example1.items,indexOfItem, ...

  5. 通过OpenCL内核代码猜测设备寄存器个数

    在OpenCL标准中,没有给出查看计算设备一共有多少寄存器,至少能分配给每个work-item多少寄存器使用的特征查询.而由于一个段内核代码是否因寄存器紧缺而导致性能严重下降也是一个比较重要的因素,因 ...

  6. 一百二十九:CMS系统之七牛云存储介绍和配置

    将图片的存储.尺寸等图片本身的一些擦做,交给七牛云处理,自己只关注网站开发本身 七牛云官网:https://www.qiniu.com 操作 登录后,点击管理控制台 点击对象存储-->新建存储空 ...

  7. ProbCog mlnlearn的探索

    which mlnlearn: /home/panjinbo/Desktop/MLN/probcog/Toolbox/ProbCog-1.1/apps/mlnlearn ==> /home/pa ...

  8. Spark2.4源码阅读1-Shuffle机制概述

    本文参考: a. https://www.jianshu.com/p/c46bfaa5dd15 1. shuffle及历史简介 shuffle,即"洗牌",所有采用map-redu ...

  9. matlab boundaries和fchcode函数无法执行的解决办法 未定义与 'double' 类型的输入参数相对应的函数 'boundaries'

    在测试代码时发现,自己的matlab无法执行Freeman链码函数: boundaries和fchcode函数都无法正常运行: 需要在自己的工作目录中添加如下函数: boundaries   fchc ...

  10. Android开发环境搭建(studio版)

    1.下载安装JDK 网址:http://www.oracle.com/technetwork/java/javase/downloads/index.html