From c7a6c3ca8065d4908c2866d1d77555e6bed10ee1 Mon Sep 17 00:00:00 2001 From: SerLiunx-ctrl <17689543@qq.com> Date: Tue, 4 Jun 2024 14:16:49 +0800 Subject: [PATCH] =?UTF-8?q?change:=20=E9=85=8D=E7=BD=AE=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E4=B8=80=E5=B1=82=E6=96=87=E4=BB=B6=E5=9E=8B=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=8A=BD=E8=B1=A1.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ddns/config/AbstractConfiguration.java | 5 +++++ .../com/serliunx/ddns/config/Configuration.java | 3 ++- .../serliunx/ddns/config/FileConfiguration.java | 14 ++++++++++++++ .../ddns/config/PropertiesConfiguration.java | 10 +++++++--- .../serliunx/ddns/constant/SystemConstants.java | 14 ++++++++++++-- .../ddns/core/context/AbstractInstanceContext.java | 4 ++-- .../serliunx/ddns/support/SystemInitializer.java | 2 +- 7 files changed, 43 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/serliunx/ddns/config/FileConfiguration.java diff --git a/src/main/java/com/serliunx/ddns/config/AbstractConfiguration.java b/src/main/java/com/serliunx/ddns/config/AbstractConfiguration.java index e8c6ea4..6adbab6 100644 --- a/src/main/java/com/serliunx/ddns/config/AbstractConfiguration.java +++ b/src/main/java/com/serliunx/ddns/config/AbstractConfiguration.java @@ -103,6 +103,11 @@ public abstract class AbstractConfiguration implements Configuration { printDetails(); } + @Override + public int getPriority() { + return Integer.MAX_VALUE; + } + /** * 载入配置信息请加锁 */ diff --git a/src/main/java/com/serliunx/ddns/config/Configuration.java b/src/main/java/com/serliunx/ddns/config/Configuration.java index f52d551..9139660 100644 --- a/src/main/java/com/serliunx/ddns/config/Configuration.java +++ b/src/main/java/com/serliunx/ddns/config/Configuration.java @@ -1,5 +1,6 @@ package com.serliunx.ddns.config; +import com.serliunx.ddns.core.Priority; import com.serliunx.ddns.core.Refreshable; /** @@ -7,7 +8,7 @@ import com.serliunx.ddns.core.Refreshable; * @author SerLiunx * @since 1.0 */ -public interface Configuration extends Refreshable { +public interface Configuration extends Refreshable, Priority { /** * 获取整数 diff --git a/src/main/java/com/serliunx/ddns/config/FileConfiguration.java b/src/main/java/com/serliunx/ddns/config/FileConfiguration.java new file mode 100644 index 0000000..b4b6aa2 --- /dev/null +++ b/src/main/java/com/serliunx/ddns/config/FileConfiguration.java @@ -0,0 +1,14 @@ +package com.serliunx.ddns.config; + +/** + * @author SerLiunx + * @since 1.0 + */ +public abstract class FileConfiguration extends AbstractConfiguration { + + protected final String path; + + public FileConfiguration(String path) { + this.path = path; + } +} diff --git a/src/main/java/com/serliunx/ddns/config/PropertiesConfiguration.java b/src/main/java/com/serliunx/ddns/config/PropertiesConfiguration.java index 0e54778..7dc2deb 100644 --- a/src/main/java/com/serliunx/ddns/config/PropertiesConfiguration.java +++ b/src/main/java/com/serliunx/ddns/config/PropertiesConfiguration.java @@ -16,15 +16,19 @@ import java.util.Set; * @author SerLiunx * @since 1.0 */ -public class PropertiesConfiguration extends AbstractConfiguration { +public class PropertiesConfiguration extends FileConfiguration { private static final Logger LOGGER = LoggerFactory.getLogger(PropertiesConfiguration.class); - private final String path; private Properties properties; public PropertiesConfiguration(String path) { - this.path = path; + super(path); + } + + @Override + public int getPriority() { + return 1; } @Override diff --git a/src/main/java/com/serliunx/ddns/constant/SystemConstants.java b/src/main/java/com/serliunx/ddns/constant/SystemConstants.java index b28c1d0..772d7d9 100644 --- a/src/main/java/com/serliunx/ddns/constant/SystemConstants.java +++ b/src/main/java/com/serliunx/ddns/constant/SystemConstants.java @@ -39,7 +39,12 @@ public final class SystemConstants { /** * properties配置文件名称 */ - public static final String PROPERTIES_FILE = "settings.properties"; + public static final String CONFIG_PROPERTIES_FILE = "settings.properties"; + + /** + * yaml配置文件名称 + */ + public static final String CONFIG_YAML_FILE = "settings.yml"; /** * 日志配置文件名称 @@ -69,5 +74,10 @@ public final class SystemConstants { /** * 用户目录下的.properties配置文件 */ - public static final String USER_SETTINGS_PROPERTIES_PATH = USER_DIR + File.separator + PROPERTIES_FILE; + public static final String USER_SETTINGS_PROPERTIES_PATH = USER_DIR + File.separator + CONFIG_PROPERTIES_FILE; + + /** + * 用户目录下的.yml配置文件 + */ + public static final String USER_SETTINGS_YAML_PATH = USER_DIR + File.separator + CONFIG_YAML_FILE; } diff --git a/src/main/java/com/serliunx/ddns/core/context/AbstractInstanceContext.java b/src/main/java/com/serliunx/ddns/core/context/AbstractInstanceContext.java index bd25d93..3965420 100644 --- a/src/main/java/com/serliunx/ddns/core/context/AbstractInstanceContext.java +++ b/src/main/java/com/serliunx/ddns/core/context/AbstractInstanceContext.java @@ -71,9 +71,9 @@ public abstract class AbstractInstanceContext implements InstanceContext, Multip Set builtInstances = buildInstances(instances); instanceMap = builtInstances.stream().collect(Collectors.toMap(Instance::getName, i -> i)); - }catch (Exception e){ + } catch (Exception e) { throw new RuntimeException(e); - }finally { + } finally { instanceLock.unlock(); } } diff --git a/src/main/java/com/serliunx/ddns/support/SystemInitializer.java b/src/main/java/com/serliunx/ddns/support/SystemInitializer.java index f664557..03d58b1 100644 --- a/src/main/java/com/serliunx/ddns/support/SystemInitializer.java +++ b/src/main/java/com/serliunx/ddns/support/SystemInitializer.java @@ -60,7 +60,7 @@ public final class SystemInitializer implements Refreshable, Clearable { log.info("程序正在初始化, 请稍候."); // 释放配置文件 - releaseResource(SystemConstants.PROPERTIES_FILE); + releaseResource(SystemConstants.CONFIG_PROPERTIES_FILE); // 刷新配置信息 configuration.refresh();