Răsfoiți Sursa

支持动态切换cdn配置

AE86 1 an în urmă
părinte
comite
3dd0d32e8f

+ 7 - 0
dbsyncer-biz/src/main/java/org/dbsyncer/biz/SystemConfigService.java

@@ -50,4 +50,11 @@ public interface SystemConfigService {
      * @param file
      */
     void refreshConfig(File file);
+
+    /**
+     * 是否启用CDN加速访问静态资源
+     *
+     * @return
+     */
+    boolean isEnableCDN();
 }

+ 2 - 0
dbsyncer-biz/src/main/java/org/dbsyncer/biz/checker/impl/system/SystemConfigChecker.java

@@ -2,6 +2,7 @@ package org.dbsyncer.biz.checker.impl.system;
 
 import org.dbsyncer.biz.checker.AbstractChecker;
 import org.dbsyncer.common.util.BeanUtil;
+import org.dbsyncer.common.util.StringUtil;
 import org.dbsyncer.manager.Manager;
 import org.dbsyncer.parser.logger.LogService;
 import org.dbsyncer.parser.logger.LogType;
@@ -47,6 +48,7 @@ public class SystemConfigChecker extends AbstractChecker {
     public ConfigModel checkEditConfigModel(Map<String, String> params) {
         logger.info("params:{}", params);
         Assert.notEmpty(params, "Config check params is null.");
+        params.put("enableCDN", StringUtil.isNotBlank(params.get("enableCDN")) ? "true" : "false");
 
         SystemConfig systemConfig = manager.getSystemConfig();
         Assert.notNull(systemConfig, "配置文件为空.");

+ 11 - 6
dbsyncer-biz/src/main/java/org/dbsyncer/biz/impl/SystemConfigServiceImpl.java

@@ -14,10 +14,10 @@ import org.dbsyncer.parser.model.ConfigModel;
 import org.dbsyncer.parser.model.SystemConfig;
 import org.dbsyncer.plugin.enums.FileSuffixEnum;
 import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.Assert;
 
+import javax.annotation.Resource;
 import java.io.File;
 import java.io.IOException;
 import java.nio.charset.Charset;
@@ -34,19 +34,19 @@ import java.util.Map;
 @Service
 public class SystemConfigServiceImpl implements SystemConfigService {
 
-    @Autowired
+    @Resource
     private Manager manager;
 
-    @Autowired
+    @Resource
     private Checker systemConfigChecker;
 
-    @Autowired
+    @Resource
     private PreloadTemplate preloadTemplate;
 
-    @Autowired
+    @Resource
     private LogService logService;
 
-    @Autowired
+    @Resource
     private UserConfigService userConfigService;
 
     @Override
@@ -98,6 +98,11 @@ public class SystemConfigServiceImpl implements SystemConfigService {
         }
     }
 
+    @Override
+    public boolean isEnableCDN() {
+        return getSystemConfig().isEnableCDN();
+    }
+
     private SystemConfig getSystemConfig() {
         SystemConfig config = manager.getSystemConfig();
         if (null != config) {

+ 1 - 13
dbsyncer-common/src/main/java/org/dbsyncer/common/config/AppConfig.java

@@ -21,11 +21,6 @@ public class AppConfig {
 
     private String copyright;
 
-    /**
-     * 是否使用CDN加载静态资源文件
-     */
-    private boolean enableCDN;
-
     public String getName() {
         return name;
     }
@@ -58,11 +53,4 @@ public class AppConfig {
         this.copyright = copyright;
     }
 
-    public boolean isEnableCDN() {
-        return enableCDN;
-    }
-
-    public void setEnableCDN(boolean enableCDN) {
-        this.enableCDN = enableCDN;
-    }
-}
+}

+ 13 - 0
dbsyncer-parser/src/main/java/org/dbsyncer/parser/model/SystemConfig.java

@@ -30,6 +30,11 @@ public class SystemConfig extends ConfigModel {
      */
     private int refreshIntervalSeconds = 5;
 
+    /**
+     * 是否启用CDN加速访问静态资源(false-禁用;true-启动)
+     */
+    private boolean enableCDN;
+
     public int getExpireDataDays() {
         return expireDataDays;
     }
@@ -53,4 +58,12 @@ public class SystemConfig extends ConfigModel {
     public void setRefreshIntervalSeconds(int refreshIntervalSeconds) {
         this.refreshIntervalSeconds = refreshIntervalSeconds;
     }
+
+    public boolean isEnableCDN() {
+        return enableCDN;
+    }
+
+    public void setEnableCDN(boolean enableCDN) {
+        this.enableCDN = enableCDN;
+    }
 }

+ 4 - 4
dbsyncer-web/src/main/java/org/dbsyncer/web/controller/DefaultController.java

@@ -1,6 +1,6 @@
 package org.dbsyncer.web.controller;
 
-import org.dbsyncer.common.config.AppConfig;
+import org.dbsyncer.biz.SystemConfigService;
 import org.springframework.boot.web.server.ErrorPage;
 import org.springframework.boot.web.server.ErrorPageRegistrar;
 import org.springframework.boot.web.server.ErrorPageRegistry;
@@ -17,17 +17,17 @@ import javax.servlet.http.HttpServletRequest;
 public class DefaultController implements ErrorPageRegistrar {
 
     @Resource
-    private AppConfig appConfig;
+    private SystemConfigService systemConfigService;
 
     @RequestMapping("")
     public String index(HttpServletRequest request, ModelMap model) {
-        model.put("enableCDN", appConfig.isEnableCDN());
+        model.put("enableCDN", systemConfigService.isEnableCDN());
         return "index.html";
     }
 
     @RequestMapping({"/login", "/login.html"})
     public String index(ModelMap model) {
-        model.put("enableCDN", appConfig.isEnableCDN());
+        model.put("enableCDN", systemConfigService.isEnableCDN());
         return "login.html";
     }
 

+ 0 - 2
dbsyncer-web/src/main/resources/application.properties

@@ -6,8 +6,6 @@ server.port=18686
 server.servlet.session.timeout=1800
 # 访问服务的路径,‘/’ -> http://${server.ip}:${server.port}/
 server.servlet.context-path=/
-# 启用CDN加速访问静态资源
-info.app.enableCDN=false
 
 #web
 # 机器的唯一编号(单机部署则填默认值; 部署集群时, 要保证编号在集群中唯一)

+ 6 - 0
dbsyncer-web/src/main/resources/public/system/system.html

@@ -33,6 +33,12 @@
                         <input type="number" class="form-control" min="1" max="60" dbsyncer-valid="require" name="refreshIntervalSeconds" th:value="${config?.refreshIntervalSeconds}"/>
                     </div>
                 </div>
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">CDN静态资源</label>
+                    <div class="col-sm-8">
+                        <input id="enableCDNSwitch" name="enableCDN" th:checked="${config?.enableCDN}" type="checkbox" />
+                    </div>
+                </div>
                 <div class="form-group">
                     <div class="text-right col-sm-4"></div>
                     <div class="text-right col-sm-8">

+ 7 - 1
dbsyncer-web/src/main/resources/static/js/system/index.js

@@ -10,6 +10,13 @@ function submit(data) {
 }
 
 $(function () {
+    $('#enableCDNSwitch').bootstrapSwitch({
+        onText: "Yes",
+        offText: "No",
+        onColor: "success",
+        offColor: "info",
+        size: "normal"
+    });
     //保存
     $("#updateSystemSubBtn").click(function () {
         var $form = $("#configEditForm");
@@ -18,5 +25,4 @@ $(function () {
             submit(data);
         }
     });
-
 })