|
@@ -0,0 +1,69 @@
|
|
|
+package cn.keking.config;
|
|
|
+
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+
|
|
|
+import javax.annotation.PostConstruct;
|
|
|
+import java.io.BufferedReader;
|
|
|
+import java.io.File;
|
|
|
+import java.io.FileReader;
|
|
|
+import java.io.IOException;
|
|
|
+import java.util.Properties;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @auther: chenjh
|
|
|
+ * @time: 2019/4/10 16:16
|
|
|
+ * @description 每隔1s读取并更新一次配置文件
|
|
|
+ */
|
|
|
+@Component
|
|
|
+public class ConfigRefreshComponent {
|
|
|
+
|
|
|
+ private static final Logger LOGGER = LoggerFactory.getLogger(ConfigRefreshComponent.class);
|
|
|
+
|
|
|
+ @PostConstruct
|
|
|
+ void refresh() {
|
|
|
+ Thread configRefreshThread = new Thread(new ConfigRefreshThread());
|
|
|
+ configRefreshThread.start();
|
|
|
+ }
|
|
|
+
|
|
|
+ class ConfigRefreshThread implements Runnable {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ try {
|
|
|
+ Properties properties = new Properties();
|
|
|
+ String userDir = System.getProperty("user.dir");
|
|
|
+ Properties properties1 = System.getProperties();
|
|
|
+ if (userDir.endsWith("bin")) {
|
|
|
+ userDir = userDir.substring(0, userDir.length() - 4);
|
|
|
+ }
|
|
|
+ String separator = java.io.File.separator;
|
|
|
+ String configFilePath = userDir + separator + "conf" + separator + "application.properties";
|
|
|
+ File file = new File(configFilePath);
|
|
|
+ if (!file.exists()) {
|
|
|
+ configFilePath = userDir + separator + "jodconverter-web" + separator + "src" + separator + "main" + separator + "conf" + separator + "application.properties";
|
|
|
+ }
|
|
|
+ String text = null;
|
|
|
+ String media = null;
|
|
|
+ String convertedFileCharset = null;
|
|
|
+ String[] textArray = {};
|
|
|
+ String[] mediaArray = {};
|
|
|
+ while (true) {
|
|
|
+ BufferedReader bufferedReader = new BufferedReader(new FileReader(configFilePath));
|
|
|
+ properties.load(bufferedReader);
|
|
|
+ text = properties.get("simText") == null ? "" : properties.get("simText").toString();
|
|
|
+ media = properties.get("media") == null ? "" : properties.get("media").toString();
|
|
|
+ convertedFileCharset = properties.get("converted.file.charset") == null ? "" : properties.get("converted.file.charset").toString();
|
|
|
+ textArray = text.split(",");
|
|
|
+ mediaArray = media.split(",");
|
|
|
+ ConfigConstants.setSimText(textArray);
|
|
|
+ ConfigConstants.setMedia(mediaArray);
|
|
|
+ ConfigConstants.setConvertedFileCharset(convertedFileCharset);
|
|
|
+ Thread.sleep(1000L);
|
|
|
+ }
|
|
|
+ } catch (IOException | InterruptedException e) {
|
|
|
+ LOGGER.error("读取配置文件异常:{}", e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|