From e559379294421be87b46e77b43e2474c25d2bfbc Mon Sep 17 00:00:00 2001 From: Redkale <22250530@qq.com> Date: Thu, 2 Nov 2017 17:42:16 +0800 Subject: [PATCH] =?UTF-8?q?Resource=E4=BE=9D=E8=B5=96=E6=B3=A8=E5=85=A5?= =?UTF-8?q?=E6=94=AF=E6=8C=81system.property.=E5=BC=80=E5=A4=B4=E7=9A=84?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/org/redkale/util/ResourceFactory.java | 60 ++++++++++++----------- 1 file changed, 32 insertions(+), 28 deletions(-) diff --git a/src/org/redkale/util/ResourceFactory.java b/src/org/redkale/util/ResourceFactory.java index cb77d9780..4204f7f96 100644 --- a/src/org/redkale/util/ResourceFactory.java +++ b/src/org/redkale/util/ResourceFactory.java @@ -576,24 +576,11 @@ public final class ResourceFactory { } boolean autoregnull = true; final String rcname = tname; - ResourceEntry re = findEntry(rcname, genctype); - if (re == null) { - if (rcname.startsWith("property.")) { - re = findEntry(rcname, String.class); - } else { - re = findEntry(rcname, classtype); - } - } - if (re == null) { - ResourceLoader it = findLoader(genctype, field); - if (it != null) { - it.load(this, src, rcname, field, attachment); - autoregnull = it.autoNone(); - re = findEntry(rcname, genctype); - } - } - if (re == null && genctype != classtype) { - re = findEntry(rcname, classtype); + Object rs; + if (rcname.startsWith("system.property.")) { + rs = System.getProperty(rcname.substring("system.property.".length())); + } else { + ResourceEntry re = findEntry(rcname, genctype); if (re == null) { if (rcname.startsWith("property.")) { re = findEntry(rcname, String.class); @@ -602,22 +589,39 @@ public final class ResourceFactory { } } if (re == null) { - ResourceLoader it = findLoader(classtype, field); + ResourceLoader it = findLoader(genctype, field); if (it != null) { it.load(this, src, rcname, field, attachment); autoregnull = it.autoNone(); - re = findEntry(rcname, classtype); + re = findEntry(rcname, genctype); } } + if (re == null && genctype != classtype) { + re = findEntry(rcname, classtype); + if (re == null) { + if (rcname.startsWith("property.")) { + re = findEntry(rcname, String.class); + } else { + re = findEntry(rcname, classtype); + } + } + if (re == null) { + ResourceLoader it = findLoader(classtype, field); + if (it != null) { + it.load(this, src, rcname, field, attachment); + autoregnull = it.autoNone(); + re = findEntry(rcname, classtype); + } + } + } + if (re == null && autoregnull) { + register(rcname, genctype, null); //自动注入null的值 + re = findEntry(rcname, genctype); + } + if (re == null) continue; + re.elements.add(new ResourceElement<>(src, field)); + rs = re.value; } - if (re == null && autoregnull) { - register(rcname, genctype, null); //自动注入null的值 - re = findEntry(rcname, genctype); - } - if (re == null) continue; - re.elements.add(new ResourceElement<>(src, field)); - - Object rs = re.value; if (rs != null && !rs.getClass().isPrimitive() && classtype.isPrimitive()) { if (classtype == int.class) { rs = Integer.decode(rs.toString());