在很多框架中,经常看到xml中将某个属性的值用{}代替的变量,并在properties文件中配置成键-值对表示,如图所示:
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="${jdbc.driver}" />
<property name="JDBC.ConnectionURL" value="${jdbc.connectionURL}" />
<property name="JDBC.Username" value="${username}" />
<property name="JDBC.Password" value="${password}" />
</dataSource>
properties文件:
jdbc.driver = com.mysql.jdbc.Driver
jdbc.connectionURL = jdbc:mysql://localhost:3306/pretty
username =root
password =root
ibatis中解析的方法:
public static String parsePropertyTokens(String string, Properties variables) {
final String OPEN = "${";
final String CLOSE = "}";
String newString = string; //name = ${username}
if (newString != null && variables != null) {
int start = newString.indexOf(OPEN);
int end = newString.indexOf(CLOSE);
while (start > -1 && end > start) { //迭代从已经检查过的开始
String prepend = newString.substring(0, start); // name=
String append = newString.substring(end + CLOSE.length()); //"" }后半部分
String propName = newString.substring(start + OPEN.length(), end); //username
String propValue = variables.getProperty(propName); //获取property的值
if (propValue == null) {
newString = prepend + propName + append; //如果没有从properties文件中取到值,直接返回变量的值
} else {
newString = prepend + propValue + append;
}
start = newString.indexOf(OPEN); //记录当前的${位置
end = newString.indexOf(CLOSE);
}
}
return newString; //如果properties为null,直接返回了传入的Strin
ibatis是这样解析的吗,来,咱们试一下:
public static void main(String[] args){
String username = "name=${username}";
InputStream is = NodeletUtils.class.getResourceAsStream("sys.properties");
Properties ps = new Properties();
try {
ps.load(is);
String result = parsePropertyTokens(username, ps);
System.out.println(result);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
分享到:
相关推荐
ParseXML类是XML配置文件的读取器,该类使用SAXParser解析XML文件并将配置信息存放在Properties对象中。 ParseXML类中,我们首先创建了一个SAXParserFactory对象,并使用该对象创建了一个SAXParser对象。然后,我们...
本篇文章将深入探讨如何在C#中读取XML配置文件。 首先,让我们了解XML配置文件的基本结构。一个简单的XML配置文件可能如下所示: ```xml <?xml version="1.0" encoding="utf-8"?> ``` 在C#中,读取XML...
XML配置文件是一种基于文本的数据存储方式,通过标签和属性来组织和描述数据。这种格式易于阅读和编写,同时也便于程序解析和处理。配置文件通常用于存储应用程序的设置、环境变量或数据库连接信息等,使得这些数据...
1. **DOM解析**:Document Object Model(DOM)解析器将整个XML文件加载到内存中,形成一个树形结构,允许我们通过节点遍历和操作整个文档。这种方法适用于小型XML文件,因为它占用大量内存。 2. **SAX解析**:...
在IT行业中,配置文件是软件系统中不可或缺的一部分,它们用于定义程序的行为、设置参数和环境变量,以便在不同的运行环境中适应需求。这篇博客"解析配置文件"可能详细讲解了如何理解和处理这些文件,以优化软件的...
在实际应用中,Groovy的这种XML处理方式特别适用于需要动态生成或修改XML配置文件、与XML格式的数据交互或者进行自动化测试等场景。由于Groovy的动态特性,它允许开发者在运行时根据需要改变代码逻辑,这在处理XML时...
该行代码将获取到的XML数据存储到了`xmlDoc`变量中。 ```javascript document.getElementById("to").innerHTML = xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue; document.getElementById("from...
在IT领域,XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,广泛应用在各种系统间的数据交换、配置文件以及软件文档中。本主题将深入探讨如何使用纯C++语言来解析XML文件,仅依赖于标准模板...
XML(eXtensible Markup Language)是一种标记语言,广泛用于数据交换、配置文件存储等场景。在Java中,处理XML文档时,我们通常会使用解析器,其中SAX(Simple API for XML)解析器是一种基于事件驱动的解析方式,...
在C#编程中,XML(eXtensible Markup Language)是一种常用的数据存储和交换格式,因为它的结构清晰、易于解析且跨平台。本资源提供了一种利用C#操作XML文件来保存和读取数据的方法,这对于初学者了解如何在应用程序...
配置文件通常包含键值对,其中键是变量名,值是变量的设定值。例如,如果我们要配置一个启动脚本去运行名为`app.exe`的程序,配置文件可能会有这样一行: ```ini [Startup] ProgramPath=C:\path\to\app.exe ``` 在...
3. **C++中读取配置文件**:C++没有内置的库来处理配置文件,但有很多第三方库可以帮助我们读取和解析不同格式的配置文件。例如: - Boost库提供了`property_tree`模块,可以处理XML、INI和JSON等格式。 - JSON库...
XML是一种结构化的数据存储格式,常用于数据交换、配置文件和文档存储。处理XML文件涉及到以下几个方面: 1. **解析XML**:解析XML文件意味着将其内容分解成易于处理的元素。Python中的`ElementTree`库和Java的`DOM...
这通常通过在构建工具(如Maven或Gradle)的配置文件中添加依赖来实现。对于导入工程,你可以使用IDE(如IntelliJ IDEA或Eclipse)的相应功能将外部库添加到项目的类路径中。 总的来说,Java提供了一套完整的工具来...
首先,Spring MVC中的配置文件通常是指XML配置文件,如`applicationContext.xml`或`servlet-context.xml`,它们位于`src/main/resources`目录下。这些文件包含了Spring MVC应用的所有组件配置,如控制器(Controller...
这可以通过解析配置文件,找到对应的键并赋值给成员变量来实现。在类的构造函数中,可以调用一个初始化方法,用宏定义的所有配置项来加载整个配置文件。 为了简化写入配置文件的过程,可以定义另一个宏`CONFIG_SAVE...
在这个场景中,我们可能会假设配置文件是简单的ASCII或UTF-8文本文件,以易于解析。 1. **基础结构**: - 创建一个配置类:你可以定义一个名为`Config`的类,该类包含成员变量来存储配置项,并提供读取和写入配置...
XML(eXtensible Markup Language)是一种标记语言,常用于存储和传输数据,尤其在Web服务和配置文件中广泛使用。Libxml是一个强大的C语言库,用于处理XML数据,包括解析、创建和修改XML文档。本笔记将深入探讨使用...
2. **变量解析**:配置文件中可能含有环境变量或占位符,检测程序需要识别并替换这些变量,以确保在实际环境中可以正确解析。 3. **逻辑检查**:配置文件中的某些设置可能有特定的逻辑关系,例如一个参数的值可能...
在Windows环境中,配置文件通常是INI或XML格式,它们包含了应用程序运行时所需的各种参数。VB中的配置文件可能是一个文本文件,其中包含键值对,如“Key1=Value1”,“Key2=Value2”等。这种格式便于读写,适合小型...