浏览代码

code optimize (#2108)

* code optimize
rewerma 5 年之前
父节点
当前提交
e8dba41216

+ 34 - 0
canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/config/SpringContext.java

@@ -0,0 +1,34 @@
+package com.alibaba.otter.canal.admin.config;
+
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.stereotype.Component;
+
+/**
+ * spring util配置类
+ *
+ * @author rewerma @ 2018-10-20
+ * @version 1.0.0
+ */
+@Component
+public class SpringContext implements ApplicationContextAware {
+
+    private static ApplicationContext context;
+
+    /*
+     * 注入ApplicationContext
+     */
+    public void setApplicationContext(final ApplicationContext context) throws BeansException {
+        // 在加载Spring时自动获得context
+        SpringContext.context = context;
+    }
+
+    public static Object getBean(final String beanName) {
+        return SpringContext.context.getBean(beanName);
+    }
+
+    public static Object getBean(final Class<?> clz) {
+        return context.getBean(clz);
+    }
+}

+ 7 - 3
canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/connector/SimpleAdminConnectors.java

@@ -2,16 +2,20 @@ package com.alibaba.otter.canal.admin.connector;
 
 import java.util.function.Function;
 
+import com.alibaba.otter.canal.admin.config.SpringContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.core.env.Environment;
 
 public class SimpleAdminConnectors {
 
-    private static final Logger logger        = LoggerFactory.getLogger(SimpleAdminConnectors.class);
-    private static String       defaultUser   = "admin";
-    private static String       defaultPasswd = "admin";
+    private static final Logger logger = LoggerFactory.getLogger(SimpleAdminConnectors.class);
 
     public static <R> R execute(String ip, int port, Function<AdminConnector, R> function) {
+        Environment env = (Environment) SpringContext.getBean(Environment.class);
+        String defaultUser = env.getProperty("canal.adminUser", "admin");
+        String defaultPasswd = env.getProperty("canal.adminPasswd", "admin");
+
         return execute(ip, port, defaultUser, defaultPasswd, function);
     }