public class Configuration extends Object implements Iterable<Map.Entry<String,String>>, Writable
支持从配置文件中读取配置信息或写出配置信息,配置文件是标准的 XML,包含一组 name/value 对,示例如下:
<configuration> <property> <name>com.mycomp.xxx</name> <value>xxx</value> </property> ... ... </configuration>通过
writeXml(OutputStream) 可以将配置信息输入到文件。
配置项的值可以使用变量引用,例如:${user.name},变量替换的规则:
System.getProperties() 的系统参数,如果是,则使用系统参数的取值。
变量引用示例:
<property>
<name>basedir</name>
<value>/user/${user.name}</value>
</property>
<property>
<name>tempdir</name>
<value>${basedir}/tmp</value>
</property>
| Constructor and Description |
|---|
Configuration()
默认Configuration构造方法,这个方法会载入默认配置。
|
Configuration(boolean loadDefaults)
Configuration构造方法,这个方法可以指定是否载入默认配置。如果参数
loadDefaults 是false,构造的实例不会从文件中载入默认配置。 |
Configuration(Configuration other)
Configuration的拷贝构造方法。
|
| Modifier and Type | Method and Description |
|---|---|
static void |
addDefaultResource(String name)
增加一个默认配置。默认配置是按照增加的顺序来读取的。
|
void |
addResource(InputStream in)
增加一个配置。
新配置会覆盖默认配置,除非配置参数被设定为 final.
|
void |
addResource(String name)
增加一个配置。
新配置会覆盖默认配置,除非配置参数被设定为 final.
|
void |
addResource(URL url)
增加一个配置。
新配置会覆盖默认配置,除非配置参数被设定为 final.
|
void |
clear()
清除所有配置
|
String |
get(String name)
获取参数
name的值,如果不存在,返回null。参数值会使用变量展开。 |
String |
get(String name,
String defaultValue)
获取参数
name的值,如果不存在,返回defaultValue。 |
boolean |
getBoolean(String name,
boolean defaultValue)
获取参数
name的布尔值,如果不存在,返回defaultValue。 |
Class<?> |
getClass(String name,
Class<?> defaultValue)
获取参数
name指定的类对象,如果不存在,返回defaultValue。 如果类未能找到,则会抛出RuntimeException。 |
<U> Class<? extends U> |
getClass(String name,
Class<? extends U> defaultValue,
Class<U> xface)
获取参数
name指定的类对象,这个类实现的接口由 xface指定。
如果不存在,返回defaultValue。 |
Class<?> |
getClassByName(String name)
根据类名载入Java类
|
Class<?>[] |
getClasses(String name,
Class<?>... defaultValue)
获取参数
name指定的类对象数组,如果不存在,返回defaultValue。 如果类未能找到,则会抛出RuntimeException。 |
ClassLoader |
getClassLoader()
|
InputStream |
getConfResourceAsInputStream(String name)
获取一个指定配置文件的
InputStream |
Reader |
getConfResourceAsReader(String name)
获取一个指定配置文件的
Reader |
File |
getFile(String dirsProp,
String path)
获取一个本地文件,其父目录由名称为 dirsProp 的参数指定,路径为 path.
|
float |
getFloat(String name,
float defaultValue)
获取参数
name的浮点值,如果不存在,返回defaultValue。 |
int |
getInt(String name,
int defaultValue)
获取参数
name的整形值,如果不存在,返回defaultValue。 |
long |
getLong(String name,
long defaultValue)
获取参数
name的长整形值,如果不存在,返回defaultValue。 |
com.aliyun.odps.conf.Configuration.IntegerRanges |
getRange(String name,
String defaultValue)
获取参数
name的值为一个区间,如果不存在,返回defaultValue指定的区间。 |
String |
getRaw(String name)
获取参数
name的值,不使用变量展开。 |
URL |
getResource(String name)
获取指定配置文件的
URL |
Collection<String> |
getStringCollection(String name)
获取参数
name的字符值集合,如果不存在,返回null。 |
String[] |
getStrings(String name)
获取参数
name的字符数组值,如果不存在,返回null。 |
String[] |
getStrings(String name,
String... defaultValue)
获取参数
name的字符数组值,如果不存在,返回defaultValue。 |
Iterator<Map.Entry<String,String>> |
iterator()
所有配置的迭代器,格式为key/value。key和value的类型都为string。
|
void |
readFields(DataInput in)
从
DataInput 读取 |
void |
reloadConfiguration()
从已经添加的资源中重新载入
Configuration。
这个方法会清空所有配置,并从配置文件重新载入一份新的配置。 |
void |
set(String name,
String value)
设置 参数
name的值 value 。 |
void |
setBoolean(String name,
boolean value)
设定参数
name 的布尔值 |
void |
setBooleanIfUnset(String name,
boolean value)
如果参数
name 未设定,设定它的布尔值 |
void |
setClass(String name,
Class<?> theClass,
Class<?> xface)
设置
name参数指定的类,这个类实现的接口由 xface指定。 |
void |
setClassLoader(ClassLoader classLoader)
设置
ClassLoader对象 |
void |
setFloat(String name,
float value)
设定参数
name 的浮点值 |
void |
setIfUnset(String name,
String value)
如果指定参数不存在则设定它
|
void |
setInt(String name,
int value)
设定参数
name 的整形值 |
void |
setLong(String name,
long value)
设定参数
name 的长整形值 |
void |
setQuietMode(boolean quietmode)
设定quiet模式。quiet模式下,错误等信息不会记录在日志里。
|
void |
setStrings(String name,
String... values)
设置 参数
name 的字符串数组值 value 。 |
int |
size()
配置项的计数
|
String |
toString() |
void |
write(DataOutput out)
输出到
DataOutput |
void |
writeXml(OutputStream out)
写出所有非默认的参数到一个
OutputStream |
equals, getClass, hashCode, notify, notifyAll, wait, wait, waitforEach, spliteratorpublic Configuration()
public Configuration(boolean loadDefaults)
loadDefaults 是false,构造的实例不会从文件中载入默认配置。loadDefaults - 指定是否载入默认配置public Configuration(Configuration other)
other - 拷贝的初始实例public static void addDefaultResource(String name)
name - 配置文件名。这个文件必须在classpath中。public void addResource(String name)
name - 配置文件名。这个文件必须在classpath中。public void addResource(URL url)
url - 配置文件的url名。会从指定url的本地文件系统中获取配置文件。public void addResource(InputStream in)
in - 配置文件的输入流。public void reloadConfiguration()
Configuration。
这个方法会清空所有配置,并从配置文件重新载入一份新的配置。public String get(String name)
name的值,如果不存在,返回null。参数值会使用变量展开。name - 参数名name的字符串值, 如果不存在,返回null。public String getRaw(String name)
name的值,不使用变量展开。name - 参数名name的值, 如果不存在,返回null。public void set(String name, String value)
name的值 value 。name - 参数名value - 参数值public void setIfUnset(String name, String value)
name - 参数名value - 参数值public String get(String name, String defaultValue)
name的值,如果不存在,返回defaultValue。name - 参数名defaultValue - 默认值name的字符串值,如果不存在,返回defaultValue。public int getInt(String name, int defaultValue)
name的整形值,如果不存在,返回defaultValue。name - 参数名defaultValue - 默认值name的整形值,如果不存在,返回defaultValue。public void setInt(String name, int value)
name 的整形值name - 参数名value - 整形的参数值public long getLong(String name, long defaultValue)
name的长整形值,如果不存在,返回defaultValue。name - 参数名defaultValue - 默认值name的长整型值,如果不存在,返回defaultValue。public void setLong(String name, long value)
name 的长整形值name - 参数名value - 长整形的参数值public float getFloat(String name, float defaultValue)
name的浮点值,如果不存在,返回defaultValue。name - 参数名defaultValue - 默认值name的浮点值,如果不存在,返回defaultValue。public void setFloat(String name, float value)
name 的浮点值name - 参数名value - 浮点形的参数值public boolean getBoolean(String name, boolean defaultValue)
name的布尔值,如果不存在,返回defaultValue。name - 参数名defaultValue - 默认值name的布尔值,如果不存在,返回defaultValue。public void setBoolean(String name, boolean value)
name 的布尔值name - 参数名value - 布尔形的参数值public void setBooleanIfUnset(String name, boolean value)
name 未设定,设定它的布尔值name - 参数名value - 布尔形的参数值public com.aliyun.odps.conf.Configuration.IntegerRanges getRange(String name, String defaultValue)
name的值为一个区间,如果不存在,返回defaultValue指定的区间。name - 参数名defaultValue - 默认值name的数字区间public Collection<String> getStringCollection(String name)
name的字符值集合,如果不存在,返回null。name - 参数名defaultValue - 默认值name的字符数组值,如果不存在,返回null。public String[] getStrings(String name)
name的字符数组值,如果不存在,返回null。name - 参数名defaultValue - 默认值name的字符数组值,如果不存在,返回null。public String[] getStrings(String name, String... defaultValue)
name的字符数组值,如果不存在,返回defaultValue。name - 参数名defaultValue - 默认值name的字符数组值,如果不存在,返回defaultValue。public void setStrings(String name, String... values)
name 的字符串数组值 value 。name - 参数名values - 参数值public Class<?> getClassByName(String name) throws ClassNotFoundException
name - 类名ClassNotFoundException - 如果找不到指定的Java类public Class<?>[] getClasses(String name, Class<?>... defaultValue)
name指定的类对象数组,如果不存在,返回defaultValue。 如果类未能找到,则会抛出RuntimeException。name - 参数名defaultValue - 默认值name指定的类对象数组,如果参数未指定,返回defaultValuepublic Class<?> getClass(String name, Class<?> defaultValue)
name指定的类对象,如果不存在,返回defaultValue。 如果类未能找到,则会抛出RuntimeException。name - 参数名defaultValue - 默认值name指定的类对象,如果参数未指定,返回defaultValuepublic <U> Class<? extends U> getClass(String name, Class<? extends U> defaultValue, Class<U> xface)
name指定的类对象,这个类实现的接口由 xface指定。
如果不存在,返回defaultValue。name - 参数名defaultValue - 默认值xface - 指定类实现的接口name指定的类对象, 如果参数未指定,返回 defaultValuepublic void setClass(String name, Class<?> theClass, Class<?> xface)
name参数指定的类,这个类实现的接口由 xface指定。name - 参数名theClass - 参数值xface - 指定的类实现的接口public File getFile(String dirsProp, String path) throws IOException
dirsProp - directory in which to locate the file.path - file-path.IOExceptionpublic URL getResource(String name)
URLname - 配置文件名URLpublic InputStream getConfResourceAsInputStream(String name)
InputStreamname - 配置文件名InputStreampublic Reader getConfResourceAsReader(String name)
Readername - 配置文件名Readerpublic int size()
public void clear()
public Iterator<Map.Entry<String,String>> iterator()
public void writeXml(OutputStream out) throws IOException
OutputStreamout - 输出的OutputStreamIOExceptionpublic ClassLoader getClassLoader()
ClassLoader对象public void setClassLoader(ClassLoader classLoader)
ClassLoader对象classLoader - 新的ClassLoader对象public void setQuietMode(boolean quietmode)
quietmode - true 打开, false 关闭。public void readFields(DataInput in) throws IOException
DataInput 读取readFields in interface WritableIOExceptionpublic void write(DataOutput out) throws IOException
DataOutputwrite in interface WritableIOExceptionCopyright © 2023 Alibaba Cloud Computing. All rights reserved.