Java에서 환경 변수 가져오는 3가지 방법
Java에서 환경 변수 가져오는 3가지 방법
Spring에 쩔어 살다 보면 Spring에서 자연스럽게 뚝딱 처리하던 것들이 사실 꽤 복잡한 과정이 필요하다는 걸 잊게 된다.
어느 날 문득 plain 하게 Java 프로그램을 만들던 중 JVM arguments(또는 options)나 application.properties를 가져오는 방법을 모른다는 걸 깨달았다.
환경 변수
- System Environment
- Windows의 C:\> SET
- Linux의 $ env
// Get System Environment (no default value) String sysEnv = System.getenv(name);
JVM arguments(-D로 넘어오는 값)
- System properties
// Get System Property(-D..) String sysProp = System.getProperty(key, def);
application.properties
- Properties (System.Properties와 같은 class)
Properties properties = new Properties(); ClassLoader loader = Thread.currentThread().getContextClassLoader(); try (InputStream resourceStream = loader.getResourceAsStream("application.properties")) { properties.load(resourceStream); } catch (IOException e) { logger.error("Error: ", e); } // Get application.properties String appProp = properties.getProperty(key, def);