From 608e3195eda22b3b26fec613c1fc2dbf6e6dc56d Mon Sep 17 00:00:00 2001 From: LamGC Date: Thu, 19 Aug 2021 18:22:09 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E7=9A=84=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E5=8A=9F=E8=83=BD.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 如果不初始化配置文件, 将导致用户修改配置困难. --- .../oracle/sentry/ApplicationInitiation.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/main/java/net/lamgc/oracle/sentry/ApplicationInitiation.java b/src/main/java/net/lamgc/oracle/sentry/ApplicationInitiation.java index ae1b276..7a37182 100644 --- a/src/main/java/net/lamgc/oracle/sentry/ApplicationInitiation.java +++ b/src/main/java/net/lamgc/oracle/sentry/ApplicationInitiation.java @@ -1,5 +1,6 @@ package net.lamgc.oracle.sentry; +import com.google.common.base.Throwables; import com.oracle.bmc.auth.AuthenticationDetailsProvider; import net.lamgc.oracle.sentry.script.ScriptComponent; import net.lamgc.oracle.sentry.script.ScriptManager; @@ -9,13 +10,17 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.core.annotation.Order; +import org.springframework.core.io.Resource; import org.springframework.lang.NonNull; import javax.annotation.PostConstruct; import java.io.File; import java.io.IOException; +import java.nio.file.Files; /** * @author LamGC @@ -98,6 +103,7 @@ public class ApplicationInitiation { } @PostConstruct + @Order(1) private void initialEnvironment() throws IOException { String[] directors = new String[] { "./config", @@ -130,4 +136,28 @@ public class ApplicationInitiation { } log.debug("目录检查完成."); } + + @Autowired + private void initialConfigurationFile(ApplicationContext context) { + File configFile = new File("config/application.yml"); + if (!configFile.exists()) { + Resource resource = context.getResource("application.yml"); + if (!resource.exists()) { + log.error("默认配置初始化失败(包内资源不存在)."); + return; + } + + try { + Files.copy(resource.getInputStream(), configFile.toPath()); + log.info("默认配置文件已初始化完成, 如果调整配置, 可修改配置文件中的相应配置项."); + } catch (IOException e) { + log.error("初始化默认配置文件失败!(Path: {})\n{}", + configFile.getAbsolutePath(), Throwables.getStackTraceAsString(e)); + } + } else { + log.debug("配置文件存在, 无需初始化."); + } + + } + }