From 949498f3a7442f69279edfdd5843d3425b1d0a78 Mon Sep 17 00:00:00 2001 From: Redkale Date: Thu, 24 Nov 2022 22:31:18 +0800 Subject: [PATCH] =?UTF-8?q?PropertiesAgent=E5=8A=A0=E5=BC=BA=E6=B3=A8?= =?UTF-8?q?=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/redkale/boot/PropertiesAgent.java | 19 ++++++++++++++++++- .../org/redkale/util/ResourceFactory.java | 1 + 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/redkale/boot/PropertiesAgent.java b/src/main/java/org/redkale/boot/PropertiesAgent.java index 7f6cc3d06..aa5379877 100644 --- a/src/main/java/org/redkale/boot/PropertiesAgent.java +++ b/src/main/java/org/redkale/boot/PropertiesAgent.java @@ -23,14 +23,31 @@ public abstract class PropertiesAgent { public static final String PROP_NAMESPACE_APPLICATION = "application"; + /** + * 编译时进行的操作 + * + * @param conf 节点配置 + */ public void compile(AnyValue conf) { } + /** + * 初始化配置源,配置项需要写入appProperties,并监听配置项的变化 + * + * @param factory 依赖注入资源工厂 + * @param appProperties 全局property.开头的配置项 + * @param conf 节点配置 + */ public abstract void init(ResourceFactory factory, Properties appProperties, AnyValue conf); + /** + * 销毁动作 + * + * @param conf 节点配置 + */ public abstract void destroy(AnyValue conf); protected String getKeyResourceName(String key) { - return key.startsWith("property.") ? key : ("property." + key); + return key.startsWith("system.property.") || key.startsWith("property.") ? key : ("property." + key); } } diff --git a/src/main/java/org/redkale/util/ResourceFactory.java b/src/main/java/org/redkale/util/ResourceFactory.java index 56b8850f7..83ee1262f 100644 --- a/src/main/java/org/redkale/util/ResourceFactory.java +++ b/src/main/java/org/redkale/util/ResourceFactory.java @@ -839,6 +839,7 @@ public final class ResourceFactory { this.elements = new CopyOnWriteArrayList<>(); } + //wrappers=null时才会触发listener的ResourceChangeEvent事件 public ResourceEntry(final String name, T value, final List elements, List wrappers, boolean sync) { this.name = name; this.value = value;