diff --git a/pom.xml b/pom.xml
index 3770289e7c7f2d0f13fcbf4b7e4e90c4c393a77c..136eb2b234d870a8b5e6a095ff1efea92b5ad7bb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -39,102 +39,113 @@
runtime
+
+ com.facebook.presto
+ presto-jdbc
+ 0.293
+
-
-
- org.apache.hive
- hive-jdbc
- 3.1.2
-
-
- org.slf4j
- slf4j-log4j12
-
-
- log4j
- log4j
-
-
- log4j-1.2-api
- org.apache.logging.log4j
-
-
- log4j-slf4j-impl
- org.apache.logging.log4j
-
-
- log4j-web
- org.apache.logging.log4j
-
-
- commons-logging
- commons-logging
-
-
- jdk.tools
- jdk.tools
-
-
- org.eclipse.jetty.aggregate
- *
-
+ com.github.ben-manes.caffeine
+ caffeine
+ 3.2.2
+
-
- org.eclipse.jetty
- jetty-runner
-
-
- servlet-api
- javax.servlet
-
-
- javax.servlet.jsp-api
- javax.servlet.jsp
-
-
- javax.servlet.jsp
- org.glassfish.web
-
-
- junit
- junit
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- org.apache.hadoop
- hadoop-common
- 3.3.4
-
-
- commons-logging
- commons-logging
-
-
-
-
- org.apache.hadoop
- hadoop-hdfs
- 3.3.4
-
-
- commons-logging
- commons-logging
-
-
-
+
-
- org.apache.hadoop
- hadoop-client
- 3.3.4
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
com.zaxxer
HikariCP
diff --git a/src/main/java/com/ediagnosis/cdr/cache/CacheExecutor.java b/src/main/java/com/ediagnosis/cdr/cache/CacheExecutor.java
new file mode 100644
index 0000000000000000000000000000000000000000..99ac0590c129113bf7f086cc6bdd316c0a474b9e
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/cache/CacheExecutor.java
@@ -0,0 +1,10 @@
+package com.ediagnosis.cdr.cache;
+
+import java.util.Optional;
+
+public interface CacheExecutor {
+
+ void put(String key, Object value);
+
+ Optional get(String key, Class clazz);
+}
diff --git a/src/main/java/com/ediagnosis/cdr/cache/CacheFacade.java b/src/main/java/com/ediagnosis/cdr/cache/CacheFacade.java
new file mode 100644
index 0000000000000000000000000000000000000000..6a164ee1c36c1a44ba4860367a93bc81532b25ce
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/cache/CacheFacade.java
@@ -0,0 +1,49 @@
+package com.ediagnosis.cdr.cache;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Optional;
+// todo: 待扩展,按需缓存策略进行缓存
+@Component
+public class CacheFacade {
+
+ private static final Logger log = LoggerFactory.getLogger(CacheFacade.class);
+ private final List cacheExecutors;
+
+
+ public CacheFacade(List cacheExecutors) {
+ this.cacheExecutors = cacheExecutors;
+ CacheStrategyHolder.initCacheStrategy();
+ }
+
+
+ public Optional getCache(String key, Class clazz) {
+ if (cacheExecutors.isEmpty()) {
+ log.warn("没有可用的缓存执行器");
+ return Optional.empty();
+ }
+
+
+ for (CacheExecutor executor : cacheExecutors) {
+ Optional optional = executor.get(key, clazz);
+ if (optional.isPresent()) {
+ return optional;
+ }
+ }
+ return Optional.empty();
+
+ }
+
+ public void putCache(String key, String value) {
+ if (cacheExecutors.isEmpty()) {
+ log.warn("没有可用的缓存执行器");
+ }
+ for (CacheExecutor executor : cacheExecutors) {
+ executor.put(key, value);
+ }
+ }
+
+}
diff --git a/src/main/java/com/ediagnosis/cdr/cache/CacheStrategyHolder.java b/src/main/java/com/ediagnosis/cdr/cache/CacheStrategyHolder.java
new file mode 100644
index 0000000000000000000000000000000000000000..37bbd68eb1ad9b3b597cfb8f62949ec42bedc842
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/cache/CacheStrategyHolder.java
@@ -0,0 +1,24 @@
+package com.ediagnosis.cdr.cache;
+
+import com.ediagnosis.cdr.context.JsonProcessor;
+
+import java.util.Map;
+import java.util.Optional;
+
+
+public class CacheStrategyHolder {
+ private static Map cacheStrategy;
+
+
+
+
+ public static void initCacheStrategy() {
+ String CACHE_STRATEGY_PATH = "classpath:cache-strategy.json";
+ Optional