Browse Source

修复ApplicationContextHolder.getProperty()方法获取Period动态时间周期缓存问题

woody 2 months ago
parent
commit
944163211c

+ 3 - 2
framework-base/src/main/java/com/chelvc/framework/base/context/ApplicationContextHolder.java

@@ -773,12 +773,13 @@ public class ApplicationContextHolder implements ApplicationContextAware, Proper
             value = (T) getProperty(key, Range::parse);
             value = (T) getProperty(key, Range::parse);
         } else if (type == Paging.class) {
         } else if (type == Paging.class) {
             value = (T) getProperty(key, Paging::parse);
             value = (T) getProperty(key, Paging::parse);
-        } else if (type == Period.class) {
-            value = (T) getProperty(key, Period::parse);
         } else if (type == Duration.class) {
         } else if (type == Duration.class) {
             value = (T) getProperty(key, Duration::parse);
             value = (T) getProperty(key, Duration::parse);
         } else if (type == Region.class) {
         } else if (type == Region.class) {
             value = (T) getProperty(key, code -> Region.of(Integer.valueOf(code)));
             value = (T) getProperty(key, code -> Region.of(Integer.valueOf(code)));
+        } else if (type == Period.class) {
+            Environment environment = getEnvironment(false);
+            value = environment == null ? null : (T) StringUtils.ifEmpty(environment.getProperty(key), Period::parse);
         } else {
         } else {
             value = getProperty(key, json -> JacksonUtils.deserialize(json, type));
             value = getProperty(key, json -> JacksonUtils.deserialize(json, type));
         }
         }