-
외부 설정 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