From e803d2161b3b78f44ffb9c46f11591dcf3c311f9 Mon Sep 17 00:00:00 2001 From: LamGC Date: Thu, 4 Jun 2020 11:24:40 +0800 Subject: [PATCH] =?UTF-8?q?[Add]=20PropertiesUtils=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E5=B7=A5=E5=85=B7=E7=B1=BB;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../net/lamgc/cgj/util/PropertiesUtils.java | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/main/java/net/lamgc/cgj/util/PropertiesUtils.java diff --git a/src/main/java/net/lamgc/cgj/util/PropertiesUtils.java b/src/main/java/net/lamgc/cgj/util/PropertiesUtils.java new file mode 100644 index 0000000..dd8ef2e --- /dev/null +++ b/src/main/java/net/lamgc/cgj/util/PropertiesUtils.java @@ -0,0 +1,51 @@ +package net.lamgc.cgj.util; + +import net.lamgc.utils.base.ArgumentsProperties; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public final class PropertiesUtils { + + private final static Logger log = LoggerFactory.getLogger(PropertiesUtils.class); + + private PropertiesUtils() {} + + /** + * 从ArgumentsProperties获取设置项到System Properties + * @param prop ArgumentsProperties对象 + * @param key 设置项key + * @param defaultValue 默认值 + * @return 如果成功从ArgumentsProperties获得设置项, 返回true, 如未找到(使用了defaultValue或null), 返回false; + */ + public static boolean getSettingToSysProp(ArgumentsProperties prop, String key, String defaultValue) { + if(prop.containsKey(key)) { + log.info("{}: {}", key, prop.getValue(key)); + System.setProperty("cgj." + key, prop.getValue(key)); + return true; + } else { + if(defaultValue != null) { + System.setProperty("cgj." + key, defaultValue); + } + return false; + } + } + + /** + * 将环境变量的值读取并存入System Properties. + * @param envKey 待获取的环境变量Key + * @param sysPropKey 要设置的System Properties Key值 + * @param defaultValue 默认值, 可选 + * @return 如果设置成功, 返回true, 否则返回false + */ + public static boolean getEnvSettingToSysProp(String envKey, String sysPropKey, String defaultValue) { + String env = System.getenv(envKey); + if(env != null) { + System.setProperty("cgj." + sysPropKey, env); + return true; + } else if(defaultValue != null) { + System.setProperty("cgj." + sysPropKey, defaultValue); + } + return false; + } + +}