다시 웹, 백엔드로/스프링

외부 설정 - 1

EnoughTT 2023. 9. 1. 15:11

외부 설정 - 1

 

OS 환경 변수

OS 환경 변수 (OS environment variables) 는 해당 OS 를 사용하는 모든 프로그램에서 읽을 수 있는 설정 값
사용 범위가 가장 넓음

 

조회 방법

윈도우 : set

mac, 리눅스 : printenv

 

set 실행 결과

설정되있는 환경변수

 

애플리케이션에서 OS 환경 변수 값 읽어오기

  • System.getenv() : OS 전체 환경 변수를 Map으로 조회
  • System.getenv(key) : 특정 환경변수 값을 String으로 조회

 

OS 환경 변수는 전역 변수 같은 효과가 있음

해당 애플리케이션을 사용하는 자바 프로그램 안에서만 사용되는 외부 설정값을 사용하고 싶을 때도 있음

 

 

 

자바 시스템 속성

자바 시스템 속성 (Java System properties) 은 실행한 JVM 안에서 접근 가능한 외부 설정

자바가 내부에서 미리 설정해두고 사용하는 속성들도 있음

 

java -Durl=dev -jar app.jar

  • -D VM 옵션을 통해서 key=value 형식으로 사용
  • 순서 주의 -D 옵션이 -jar 보다 앞에 있음

 

src/test 하위

JavaSystemProperties

  • System.getProperties() : Map 과 유사한 key=value 형식의 Properties를 받을 수 있음
  • System.getProperty() : 속성값 조회

 

 

사용자가 직접 정의하는 자바 시스템 속성 추가

 

실행 시 자바 시스템 속성을 추가해야 함

 

IDE에서 실행시 VM 옵션 추가

 

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

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

 

자바 시스템 속성을 자바 코드로 설정하기

설정 :  System.setProperty(propertyName, "propertyValue")

조회 : System.getProperty(propertyName)

이 방식은 코드 안에서 사용하는 것이기 때문에 외부로 설정을 분리하는 효과는 없음

 

 

 

 

 

 

 

 

 

 

feat. 스프링부트 - 핵심 원리와 활용 (김영한)

'다시 웹, 백엔드로 > 스프링' 카테고리의 다른 글

설정 데이터  (0) 2023.09.04
외부 설정 - 2  (0) 2023.09.01
자동 구성 라이브러리 만들기/사용  (0) 2023.08.31
순수 라이브러리 사용  (0) 2023.08.30
순수 라이브러리 만들기  (0) 2023.08.30