2023. 5. 4. 09:26γμΈνλ°/μ€νλ§ λΆνΈ - ν΅μ¬ μ리μ νμ©
0οΈβ£ μΈλΆ μ€μ μ΄λ ?
λ³΄ν΅ μ€λ¬΄μμ κ°λ°μ νλ€λ³΄λ©΄ λλΆλΆ νμ¬μμ μ΄μ μλ²μ κ°λ° μλ²λ₯Ό λλ μ κ°λ°μ μ§ννλ€.
λ¨Όμ κ°λ° μλ²μμ κ°λ°νκ³ , ν μ€νΈλ₯Ό μ§ν ν μ μμ μΌλ‘ λμνλ€λ κ²μ νμΈν νμ μ€μ κ³ κ°μκ² μλΉμ€ νλ μ΄μ νκ²½μ λ°°ν¬λ₯Ό νλ λ°©μμΌλ‘ μ§ννλ€.
κ°λ° νκ²½ : κ°λ° μλ², κ°λ° DB
μ΄μ νκ²½: μ΄μ μλ², μ΄μ DB
μ΄λ°μμΌλ‘ DBλ λ€λ₯Έ κ°κ° λ€λ₯Έ κ²μ μ¬μ©ν΄μ μ§νν΄μ£Όλλ° κ·Έλ¬λ©΄ κ°κ° νκ²½μ λ°λΌμ DB URL , username λ±λ±μ μ€μ μ΄ μ‘°κΈμ© λ€λ₯΄κ² λλ€.
νκ²½μ λ°λΌ λ€λ₯Έ μ€μ κ°μ μ¬μ©νκΈ° μν΄μ λΉλ ν κ° νκ²½μ λ§μΆ° μ€ν μμ μ μΈλΆ μ€μ κ°μ μ£Όμ ν΄μ£Όλ©΄ λλ€.
λ°°ν¬ νκ²½κ³Όλ μκ΄μμ΄ λΉλλ νλ²λ§ μ§ννκ³ , κ·Έ λ€μ μ€ν μμ μ νκ²½μ λ°λΌ μ€μ κ°μ μΈλΆμμ μ£Όμ λ°μΌλ©΄ λλ€.
1οΈβ£ μΈλΆ μ€μ λ°©λ²
μΈλΆ μ€μ νλ λ°©λ²μΌλ‘λ 4κ°μ§ μ λκ° μλ€.
- OS νκ²½ λ³μ: OS μμ μ§μνλ μΈλΆ μ€μ , ν΄λΉ OSλ₯Ό μ¬μ©νλ λͺ¨λ νλ‘μΈμ€μμ μ¬μ©
- μλ° μμ€ν μμ± : μλ°μμ μ§μνλ μΈλΆ μ€μ , ν΄λΉ JVM μμμ μ¬μ©
- μλ° μ»€λ§¨λ λΌμΈ μΈμ : 컀맨λ λΌμΈμμ μ λ¬νλ μΈλΆ μ€μ , μ€ν μ main(args) λ©μλμμ μ¬μ©
- μΈλΆ νμΌ(μ€μ λ°μ΄ν°) : νλ‘κ·Έλ¨μμ μΈλΆ νμΌμ μ§μ μ½μ΄μ μ¬μ©
2οΈβ£ μΈλΆ μ€μ λ°©λ² : OS νκ²½ λ³μ
OS νκ²½ λ³μ μ€μ μ ν΄λΉ OSλ₯Ό μ¬μ©νλ λͺ¨λ νλ‘κ·Έλ¨μμ μ½μ μ μλ μ€μ κ°μ΄μ΄μ μ¬μ© λ²μκ° μ μΌ λλ€.
* μ‘°ν λ°©λ²
μλμ° : set
-> νμ¬ OSμ μ€μ λ νκ²½ λ³μ κ°λ€μ μΆλ ₯νλ€.
* μ€μ λ°©λ²
(μλ° μ€μΉν΄λ΄€λ€λ©΄ JAVA_HOME μ€μ κ°μκ±° ν΄λ΄€μν λ° μ΄μ λμΌνκ² νκ²½λ³μ μ€μ ν΄μ£Όλ©΄ λλ€.)
* μλ°μμ OS νκ²½ λ³μ μ€μ κ° μ½λ λ°©λ²
@Slf4j
public class OsEnv
{
public static void main(String[] args)
{
Map<String, String> envMap = System.getenv();
for (String key : envMap.keySet())
{
log.info("env {} = {}", key, System.getenv(key));
}
}
}
System.getenv() νλ©΄ μ 체 OS νκ²½ λ³μλ₯Ό MapμΌλ‘ μ‘°νν μ μλ€.
System.getenv(key) λ₯Ό μ¬μ©νλ©΄ νΉμ OS νκ²½ λ³μμ κ°μ μ‘°νν μ μλ€.
λ§μ½ OS νκ²½λ³μμ κ°μ μ€μ ν΄μ μ΄μ©νκ³ μΆλ€λ©΄ νκ²½λ³μ μ€μ ν λ€μ System.getenv("μ€μ κ°") λ£μ΄μ£Όλ©΄ μ€μ κ°μ μ½μ΄μ μ¬μ©ν μ μλ€.
β κ·Όλ° os νκ²½ λ³μλ μλ° νλ‘κ·Έλ¨λΏλ§ μλλΌ λ€λ₯Έ νλ‘κ·Έλ¨μμλ μ¬μ©ν μ μκ² λκΈ° λλ¬Έμ μ΄ μ΄ν리μΌμ΄μ μ μ΄μ©νλ μλ° νλ‘κ·Έλ¨μμλ§ μ΄ μ€μ κ°μ μ¬μ©νκ³ μΆλ€λ©΄ λ€λ₯Έ λ°©λ²μΌλ‘ μ€μ ν΄μΌ νλ€.
3οΈβ£ μΈλΆ μ€μ λ°©λ² : μλ° μμ€ν μμ±
μλ° μμ€ν μμ±(Java System Properties) μ μ€νν JVM λ΄μμ μ κ·Ό κ°λ₯ν μΈλΆ μ€μ μ΄λ€.
μλ° μμ€ν μμ±μ μλ° νλ‘κ·Έλ¨μ μ€νν λ μ¬μ©νλλ°
java -Durl=aaa -jar XXX.jar
μ΄λ°μμΌλ‘ -D μ΅μ μ ν΅ν΄μ key = value νμμΌλ‘ μ£Όλ©΄ λλ€.
* μλ° μμ€ν μμ± μ½μ΄μ€λ λ°©λ²
@Slf4j
public class JavaSystemProperties
{
public static void main(String[] args)
{
Properties properties = System.getProperties();
for (Object key : properties.keySet())
{
log.info("prop {} = {}", key, System.getProperty(key.toString()));
}
String url = System.getProperty("url");
String username = System.getProperty("username");
String password = System.getProperty("password");
log.info("url = {} ", url);
log.info("username = {} ", username);
log.info("password = {} ", password);
}
}
System.getProperties() λ₯Ό μ¬μ©νλ©΄ Map νμμΌλ‘ key=vaule νμμ properties λ₯Ό λ°κ³ μλ° μμ€ν μμ±μ μ‘°νν μ μλ€.
System.getProperty(key) λ₯Ό μ¬μ©νλ©΄ μμ±κ°μ μ‘°νν μ μλ€.
κ·Έλ¦¬κ³ url, username, password μλ° μμ€ν μμ±μ μ½μ΄μ€λ μ½λλ ν¨κ» μλ€.
url, username, password μμ±μ μ½μ΄μ€κΈ° μν΄μλ μλ° μμ€ν μ μ€νν λ μμ±μ μ§μ ν΄μ€μΌ νλ€.
μ΄λ κ² μ§μ ν΄μ£Όκ³ apply ν μ€νν΄λ³΄λ©΄
-D μ΅μ μ ν΅ν΄ μΆκ°ν μλ° μμ€ν μμ±μ νμΈν μ μλ€.
μμ λ°©μμ μΈν 리μ μ΄μμ μ§μ μμ±μ μΆκ°ν κ²μ΄κ³ , jar λ‘ μ€νν λλ
java -Durl=devdb -Dusername=hj -Dpassword=1231 -jar XXX.jar
μ΄λ°μμΌλ‘ μλ° μμ€ν μμ±μ μΆκ°ν μ μλ€.
μ€νν λ μμ±μ μΆκ°ν μ λ μκ³ , System.setProperty(propertyKey, propertyValue) λ‘ μ§μ ν΄μ μ‘°νν μ λ μλ€. (κ·Όλ° μ΄κ±΄ μ½λ μμ μ§μ μ€μ νλκ±°λΌ νκ²½ λΆλ¦¬ν΄μ κ°κ° λ€λ₯Έ μ€μ μ μ»μ΄μ¬ μλ μλ€.)