Environment#getProperty() 호출 시 application.properties의 요소보다 systemEnvironment의 요소를 우선적으로 읽는 문제
미해결
스프링 부트 - 핵심 원리와 활용
[문제 상황] Environment 스프링 빈 객체 env가 있습니다. env.getProperty("username"); 호출 시 "admin"이 출력됩니다. 이는 application.properties 에서 지정하지 않은 값입니다. 디버그 모드로 찾아본 결과 Environment 객체가 application.properties 파일보다 systemEnvironment에 저장된 값을 더 우선적으로 가져오는 것 같습니다. - 아래 사진 참고 application.properties 파일 url=local.db.com username=local_user password=local_pw #--- spring.config.activate.on-profile=dev url=dev.db.com username=dev_user password=dev_pw #--- spring.config.activate.on-profile=prod url=prod.db.com username=prod_user password=prod_pw Environment#getProperty("username"); 실행 결과 [질문] systemEnvironment는 어디에 저장된 값인가요. systemEnvironment보다 application.properties 가 더 좁은 범위니까 더 우선순위가 높아야 되는 거 아닌가요? systemEnvironment가 우선적으로 읽힌 원인(원리)이(가) 궁금합니다. 어떻게 해야 application.properties 파일의 값을 제대로 읽을 수 있나요.
- spring
- spring-boot
- environment
- systemenvironment





