ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] 시스템 프로퍼티 설정
    IT/정리 2021. 6. 25. 22:48

    출처 : unsplash

     

     

    시스템 프로퍼티

    자바는 JVM 위에서 수행된다. 기동이 되면서 시스템 정보 및 사용자 정보를 시스템 프로퍼티에 담아놓고 이를 수정/사용할 수 있게 하고 있다. 다만 시스템에 관련된 정보가 많기 때문에 가급적 조회 용도로 사용하거나 추가해서 사용하는데 주의해서 사용해야 한다.

    지난 번 운영 반영 시 시스템 프로퍼티를 잘못 조작하여 시스템 프로퍼티를 날려버린 적이 있어 내용 공유해 본다.

     

    import java.util.Iterator;
    import java.util.Properties;
    import java.util.Set ;
    
    public class GetProperties {
    
    	public static void main(String[] args) {
    		// 기본적인 시스템 프로퍼티를 출력
    		System.out.println(System.getProperties()) ;
    		System.out.println("=================") ;
    		
            // 기존 시스템 프로퍼티에 새로운 key-value 추가
    		System.setProperty("TEST0", "TEMP") ;
    		System.out.println(System.getProperties()) ;	// 기존 시스템 프로퍼티에 추가한 key-value 값을 확인할 수 있음
    		System.out.println("=================") ;
    		
    		// 새로운 프로퍼티 인스턴스 생성 후 key-value 값 설정
    		Properties prop2 = new Properties() ;
    		prop2.setProperty("TEST1", "TEMP") ;
    		System.setProperties(prop2);	// 잘못된 방법. 기존 시스템 프로퍼티 정보에 새로 만든 프로퍼티 값을 덮어버림.
    		
    		System.out.println(System.getProperties()) ;
    		System.out.println("=================") ;
    		
    		// 시스템 프로퍼티에 추가.
    		System.setProperty("TEST2", "TEMP") ;
    		System.out.println(System.getProperties()) ;
    	}
    
    }
    

     

    setProperties() vs setProperty()

    setProperties 메소드는 파라미터로 전달된 프로퍼티로 설정한다. 즉, 기존 프로퍼티를 덮어버리는 것.. ;; (API보기)

    setProperty 메소드는 파라미터로 전달된 key, value를 추가한다. (API보기)

     

    개발하면서 로그를 자주 찍어서 값을 확인하자! ^^;;

    댓글

Designed by Tistory.