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();