package org.dromara.common.core.service; import cn.hutool.core.convert.Convert; import cn.hutool.core.lang.Dict; import java.math.BigDecimal; import java.util.List; /** * 通用 参数配置服务 * * @author Lion Li */ public interface ConfigService { /** * 根据参数 key 获取参数值 * * @param configKey 参数 key * @return 参数值 */ String getConfigValue(String configKey); /** * 根据参数 key 获取布尔值 * * @param configKey 参数 key * @return Boolean 值 */ default Boolean getConfigBool(String configKey) { return Convert.toBool(getConfigValue(configKey)); } /** * 根据参数 key 获取整数值 * * @param configKey 参数 key * @return Integer 值 */ default Integer getConfigInt(String configKey) { return Convert.toInt(getConfigValue(configKey)); } /** * 根据参数 key 获取长整型值 * * @param configKey 参数 key * @return Long 值 */ default Long getConfigLong(String configKey) { return Convert.toLong(getConfigValue(configKey)); } /** * 根据参数 key 获取 BigDecimal 值 * * @param configKey 参数 key * @return BigDecimal 值 */ default BigDecimal getConfigDecimal(String configKey) { return Convert.toBigDecimal(getConfigValue(configKey)); } /** * 根据参数 key 获取 Map 类型的配置 * * @param configKey 参数 key * @return Dict 对象,如果配置为空或无法解析,返回空 Dict */ Dict getConfigMap(String configKey); /** * 根据参数 key 获取 Map 类型的配置列表 * * @param configKey 参数 key * @return Dict 列表,如果配置为空或无法解析,返回空列表 */ List getConfigArrayMap(String configKey); /** * 根据参数 key 获取指定类型的配置对象 * * @param configKey 参数 key * @param clazz 目标对象类型 * @param 目标对象泛型 * @return 对象实例,如果配置为空或无法解析,返回 null */ T getConfigObject(String configKey, Class clazz); /** * 根据参数 key 获取指定类型的配置列表 * * @param configKey 参数 key * @param clazz 目标元素类型 * @param 元素类型泛型 * @return 指定类型列表,如果配置为空或无法解析,返回空列表 */ List getConfigArray(String configKey, Class clazz); }