🔨 优化配置中心逻辑.

This commit is contained in:
lijiahang
2025-01-15 10:16:36 +08:00
parent 51392e09e2
commit e2a645d1e1
13 changed files with 418 additions and 32 deletions

View File

@@ -24,6 +24,7 @@ package org.dromara.visor.common.config;
import lombok.extern.slf4j.Slf4j;
import java.util.function.BiConsumer;
import java.util.function.Function;
/**
@@ -34,14 +35,14 @@ import java.util.function.Function;
* @since 2025/1/6 18:01
*/
@Slf4j
public class ConfigRef<T> {
public abstract class ConfigRef<T> {
public final String key;
private final Function<String, T> convert;
public T value;
protected final Function<String, T> convert;
public ConfigRef(String key, Function<String, T> convert) {
this.key = key;
this.convert = convert;
@@ -52,21 +53,28 @@ public class ConfigRef<T> {
*
* @param value value
*/
public void override(String value) {
try {
this.value = convert.apply(value);
} catch (Exception e) {
log.error("ConfigRef trigger override error key: {}, value: {}", key, value, e);
}
}
public abstract void override(String value);
/**
* 设置值
* 修改配置
*
* @param value value
*/
public void set(T value) {
this.value = value;
}
public abstract void set(T value);
/**
* 获取配置
*
* @return value
*/
public abstract T get();
/**
* 修改回调
*
* @param changeEvent changeEvent
* @return this
*/
public abstract ConfigRef<T> onChange(BiConsumer<T, T> changeEvent);
}

View File

@@ -33,6 +33,91 @@ import java.util.function.Function;
*/
public interface ConfigStore {
/**
* 获取 string 配置
*
* @param key key
* @return config
*/
String getString(String key);
/**
* 获取 string 配置
*
* @param key key
* @param defaultValue defaultValue
* @return config
*/
String getString(String key, String defaultValue);
/**
* 获取 int 配置
*
* @param key key
* @return config
*/
Integer getInteger(String key);
/**
* 获取 int 配置
*
* @param key key
* @param defaultValue defaultValue
* @return config
*/
Integer getInteger(String key, Integer defaultValue);
/**
* 获取 long 配置
*
* @param key key
* @return config
*/
Long getLong(String key);
/**
* 获取 long 配置
*
* @param key key
* @param defaultValue defaultValue
* @return config
*/
Long getLong(String key, Long defaultValue);
/**
* 获取 double 配置
*
* @param key key
* @return config
*/
Double getDouble(String key);
/**
* 获取 double 配置
*
* @param key key
* @param defaultValue defaultValue
* @return config
*/
Double getDouble(String key, Double defaultValue);
/**
* 获取 boolean 配置
*
* @param key key
* @return config
*/
Boolean getBoolean(String key);
/**
* 获取 boolean 配置
*
* @param key key
* @param defaultValue defaultValue
* @return config
*/
Boolean getBoolean(String key, Boolean defaultValue);
/**
* 获取配置
*
@@ -64,6 +149,7 @@ public interface ConfigStore {
* 获取配置
*
* @param key key
* @param convert convert
* @param defaultValue defaultValue
* @param <T> T
* @return conf

View File

@@ -0,0 +1,44 @@
/*
* Copyright (c) 2023 - present Dromara, All rights reserved.
*
* https://visor.dromara.org
* https://visor.dromara.org.cn
* https://visor.orionsec.cn
*
* Members:
* Jiahang Li - ljh1553488six@139.com - author
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.dromara.visor.common.constant;
/**
* 配置项常量
*
* @author Jiahang Li
* @version 1.0.0
* @since 2025/1/14 16:15
*/
public interface ConfigKeys {
/**
* 加密公钥
*/
String ENCRYPT_PUBLIC_KEY = "encrypt.publicKey";
/**
* 加密私钥
*/
String ENCRYPT_PRIVATE_KEY = "encrypt.privateKey";
}