Package org.aoju.bus.setting.magic
Class Properties
- All Implemented Interfaces:
Serializable,Cloneable,Map<Object,,Object> org.aoju.bus.core.getter.TypeGetter<CharSequence>
public final class Properties
extends Properties
implements org.aoju.bus.core.getter.TypeGetter<CharSequence>
Properties文件读取封装类
- Since:
- Java 17+
- Author:
- Kimi Liu
- See Also:
-
Field Summary
Fields inherited from class java.util.Properties
defaults -
Constructor Summary
ConstructorsConstructorDescription构造Properties(File propertiesFile) 构造Properties(File propertiesFile, Charset charset) 构造Properties(String path) 构造,使用相对于Class文件根目录的相对路径Properties(String path, Charset charset) 构造,使用相对于Class文件根目录的相对路径Properties(Properties properties) 构造,使用URL读取Properties(org.aoju.bus.core.io.resource.Resource resource, Charset charset) 构造,使用URL读取 -
Method Summary
Modifier and TypeMethodDescriptionvoidautoLoad(boolean autoReload) 在配置文件变更时自动加载<T> T将配置文件转换为Bean,支持嵌套Bean 支持的表达式:<P,T> T get(org.aoju.bus.core.lang.function.XFunction<P, T> func) 根据lambda的方法引用,获取getAndRemoveString(String... keys) 获取并删除键值对,当指定键对应值非空时,返回并删除这个值,后边的键对应的值不再查找getObject(CharSequence key, Object defaultValue) voidload()重新加载配置文件void初始化配置文件static voidload(Properties properties, org.aoju.bus.core.io.resource.Resource resource, Charset charset) 加载配置文件内容到Properties中 需要注意的是,如果资源文件的扩展名是.xml,会调用Properties.loadFromXML(InputStream)读取。voidload(org.aoju.bus.core.io.resource.Resource resource) 初始化配置文件static Propertiesof()构建一个空的Props,用于手动加入参数static Properties获得Classpath下的Properties文件static Properties获得Classpath下的Properties文件void设置值,无给定键创建之 设置后未持久化setFields(org.aoju.bus.core.lang.function.XSupplier<?>... fields) 通过lambda批量设置值 实际使用时,可以使用getXXX的方法引用来完成键值对的赋值:void持久化当前设置,会覆盖掉之前的设置void存储当前设置,会覆盖掉以前的设置<T> T将配置文件转换为Bean,支持嵌套Bean 支持的表达式:<T> T将配置文件转换为Bean,支持嵌套Bean 支持的表达式:转换为标准的Properties对象Methods inherited from class java.util.Properties
clear, clone, compute, computeIfAbsent, computeIfPresent, contains, containsKey, containsValue, elements, entrySet, equals, forEach, get, getOrDefault, getProperty, getProperty, hashCode, isEmpty, keys, keySet, list, list, load, load, loadFromXML, merge, propertyNames, put, putAll, putIfAbsent, rehash, remove, remove, replace, replace, replaceAll, save, setProperty, size, store, store, storeToXML, storeToXML, storeToXML, stringPropertyNames, toString, valuesMethods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.aoju.bus.core.getter.TypeGetter
get, get, get, getBigDecimal, getBigDecimal, getBigInteger, getBigInteger, getBool, getBool, getByte, getByte, getBytes, getBytes, getChar, getChar, getDate, getDate, getDouble, getDouble, getEnum, getEnum, getFloat, getFloat, getInt, getInt, getLocalDate, getLocalDate, getLocalDateTime, getLocalDateTime, getLocalTime, getLocalTime, getLong, getLong, getNumber, getNumber, getObject, getShort, getShort, getSqlTime, getSqlTime, getSqlTimestamp, getSqlTimestamp, getString, getString
-
Constructor Details
-
Properties
构造,使用相对于Class文件根目录的相对路径- Parameters:
path- 配置文件路径,相对于ClassPath,或者使用绝对路径
-
Properties
-
Properties
-
Properties
public Properties()构造 -
Properties
-
Properties
构造,使用URL读取- Parameters:
resource-Resourcecharset- 自定义编码
-
Properties
-
-
Method Details
-
of
-
of
获得Classpath下的Properties文件- Parameters:
resource- 资源(相对Classpath的路径)- Returns:
- Props
-
of
获得Classpath下的Properties文件- Parameters:
resource- 资源(相对Classpath的路径)charset- 自定义编码- Returns:
- Properties
-
load
public static void load(Properties properties, org.aoju.bus.core.io.resource.Resource resource, Charset charset) 加载配置文件内容到Properties中 需要注意的是,如果资源文件的扩展名是.xml,会调用Properties.loadFromXML(InputStream)读取。- Parameters:
properties-Properties文件resource- 资源charset- 编码,对XML无效
-
load
-
load
public void load(org.aoju.bus.core.io.resource.Resource resource) 初始化配置文件- Parameters:
resource-Resource
-
load
public void load()重新加载配置文件 -
autoLoad
public void autoLoad(boolean autoReload) 在配置文件变更时自动加载- Parameters:
autoReload- 是否自动加载
-
getObject
- Specified by:
getObjectin interfaceorg.aoju.bus.core.getter.TypeGetter<CharSequence>
-
get
public <P,T> T get(org.aoju.bus.core.lang.function.XFunction<P, T> func) 根据lambda的方法引用,获取- Type Parameters:
P- 参数类型T- 返回值类型- Parameters:
func- 方法引用- Returns:
- 获取表达式对应属性和返回的对象
-
getAndRemoveString
-
toProperties
-
toBean
将配置文件转换为Bean,支持嵌套Bean 支持的表达式:persion persion.name persons[3] person.friends[5].name ['person']['friends'][5]['name']
- Type Parameters:
T- Bean类型- Parameters:
beanClass- Bean类- Returns:
- Bean对象
-
toBean
-
fillBean
将配置文件转换为Bean,支持嵌套Bean 支持的表达式:persion persion.name persons[3] person.friends[5].name ['person']['friends'][5]['name']
- Type Parameters:
T- Bean类型- Parameters:
bean- Bean对象prefix- 公共前缀,不指定前缀传null,当指定前缀后非此前缀的属性被忽略- Returns:
- Bean对象
-
set
-
setFields
通过lambda批量设置值 实际使用时,可以使用getXXX的方法引用来完成键值对的赋值:User user = GenericBuilder.of(User::new).with(User::setUsername, "bus").build(); Setting.of().setFields(user::getNickname, user::getUsername);- Parameters:
fields- lambda,不能为空- Returns:
- this
-
store
持久化当前设置,会覆盖掉之前的设置- Parameters:
absolutePath- 设置文件的绝对路径- Throws:
org.aoju.bus.core.exception.InternalException- IO异常,可能为文件未找到
-
store
-