Class Props
- All Implemented Interfaces:
Serializable,Cloneable,Map<Object,,Object> org.miaixz.bus.core.lang.getter.TypeGetter<CharSequence>
public final class Props
extends Properties
implements org.miaixz.bus.core.lang.getter.TypeGetter<CharSequence>
Properties文件读取封装类
- Since:
- Java 17+
- Author:
- Kimi Liu
- See Also:
-
Field Summary
FieldsFields inherited from class java.util.Properties
defaults -
Constructor Summary
ConstructorsConstructorDescriptionProps()构造构造构造构造,使用相对于Class文件根目录的相对路径构造,使用相对于Class文件根目录的相对路径Props(Properties properties) 构造,使用URL读取构造,使用URL读取 -
Method Summary
Modifier and TypeMethodDescriptionvoidautoLoad(boolean autoReload) 在配置文件变更时自动加载static Props获取当前环境下的配置文件 name可以为不包括扩展名的文件名(默认.properties),也可以是文件名全称<P,T> T get(org.miaixz.bus.core.center.function.FunctionX<P, T> func) 根据lambda的方法引用,获取getAndRemoveString(String... keys) 获取并删除键值对,当指定键对应值非空时,返回并删除这个值,后边的键对应的值不再查找static PropsgetFirstFound(String... names) 获取给定路径找到的第一个配置文件 * name可以为不包括扩展名的文件名(默认.properties为结尾),也可以是文件名全称getObject(CharSequence key, Object defaultValue) static Props获取系统参数,例如用户在执行java命令时定义的 -Duse=busgetSubProps(String prefix) 获取一个新的子属性,子属性键值对拥有公共前缀,以.分隔。voidload()重新加载配置文件void初始化配置文件voidload(org.miaixz.bus.core.io.resource.Resource resource) 初始化配置文件static Propsof()构建一个空的Props,用于手动加入参数static Props获得Classpath下的Properties文件static Props获得Classpath下的Properties文件static PropsProps转为Propsstatic void解析PROPSvoid设置值,无给定键创建之。setFields(org.miaixz.bus.core.center.function.SupplierX<?>... fields) 通过lambda批量设置值 实际使用时,可以使用getXXX的方法引用来完成键值对的赋值:void持久化当前设置,会覆盖掉之前的设置void存储当前设置,会覆盖掉以前的设置<T> T将配置文件转换为Bean,支持嵌套Bean 支持的表达式:<T> T将配置文件转换为Bean,支持嵌套Bean 支持的表达式:<T> TtoBean(T bean) 将配置文件转换为Bean,支持嵌套Bean 支持的表达式:<T> T将配置文件转换为Bean,支持嵌套Bean 支持的表达式:转换为标准的Props对象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.miaixz.bus.core.lang.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
-
Field Details
-
EXT_NAME
-
-
Constructor Details
-
Props
public Props()构造 -
Props
-
Props
-
Props
-
Props
-
Props
构造,使用URL读取- Parameters:
resource-Resourcecharset- 自定义编码
-
Props
-
-
Method Details
-
of
-
of
-
of
-
of
-
get
-
parse
-
getFirstFound
-
getProperties
-
load
-
load
public void load(org.miaixz.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.miaixz.bus.core.lang.getter.TypeGetter<CharSequence>
-
get
public <P,T> T get(org.miaixz.bus.core.center.function.FunctionX<P, T> func) 根据lambda的方法引用,获取- Type Parameters:
P- 参数类型T- 返回值类型- Parameters:
func- 方法引用- Returns:
- 获取表达式对应属性和返回的对象
-
getAndRemoveString
-
getSubProps
-
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
-
toBean
public <T> T toBean(T bean) 将配置文件转换为Bean,支持嵌套Bean 支持的表达式:persion persion.name persons[3] person.friends[5].name ['person']['friends'][5]['name']
- Type Parameters:
T- Bean类型- Parameters:
bean- Bean对象- Returns:
- Bean对象
-
toBean
将配置文件转换为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.miaixz.bus.core.lang.exception.InternalException- IO异常,可能为文件未找到
-
store
-