ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 외부 설정 2 - 자바 시스템 속성
    스프링/스프링부트 2023. 9. 30. 14:46

    자바 시스템 속성은 실행한 JVM 안에서 접근 가능한 외부 설정이다. 추가로 자바가 내부에서 미리 설정해두고 사용하는 속성들도 있다.

     

    자바 시스템 속성은 아래처럼 자바를 실행할 때 사용된다.

    • 예) java -Durl=dev -jar app.jar
    • -D 옵션을 통해서 key=value 형식으로 주면 된다. 여기서는 url이라는 key 값에 dev라는 value를 넣어줬다.
    • -D 옵션이 jar 보다 앞에 위치해야 한다.

     

    사진 순서에 따라 설정을 해주면

     

     

    Test 코드

    @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(String.valueOf(key)));
            }
    
            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);
        }
    }

    위의 테스트 코드를 실행시켰을 때 맨 아래에 아래와 같이 나오게 된다.

     

     

     

    Jar 실행

    jar로 빌드가 되어있다면 실행 시 명령어를 통해 자바 시스템 속성을 추가할 수 있다.

    java -Durl=devdb -Dusername=dev_user -Dpassword=dev_pw -jar app.jar

     

     

     

    자바 시스템 속성은 -D 옵션을 통해서 실행 시점에 전달하는 것도 가능하고, 자바 코드 내부에 포함하는 것도 가능하다.

    '스프링 > 스프링부트' 카테고리의 다른 글

    외부 설정 - 스프링 통합  (0) 2023.09.30
    외부 설정 3 - 커맨드 라인 인수  (0) 2023.09.30
    외부 설정 1 - OS 환경 변수  (0) 2023.09.30
    외부 설정이란?  (0) 2023.09.30
    스프링 부트 자동 구성  (0) 2023.09.29
Designed by Tistory.