🪄 문제점:
ACCESS_KEY와 SECRET_KEY가 컨테이너 환경변수 지정까지는 문제 없이 되어있으나
스프링부트에서 System.getProperty("ACCESS_KEY")로 가져오지 못한다.
🪄 해결:
System.getenv()는 JVM이 실행되는 OS의 환경변수를 가져오고,
System.getProperty()는 JAVA 시스템 즉 JVM에서 가져오는 것이다. 다시 말해 JVM에 국한되며, 또 다시말해 플랫폼 독립적이다. 즉 이것은 시스템 환경변수를 가져오는 메서드가 아니다. 환경변수가 Java의 시스템 속성으로서 존재하는 경우만 getProperty()로 가져올 수 있다.
그러나 우리 상황에서는 Java의 변수가 아닌 OS의 환경변수를 가져오는 것이기 때문에 System.getenv()를 써야 한다.
✨ 의문
jar파일 실행할 때 옵션으로 -Daccess_key 지정해서 VM에 전달하고 getProperty("access_key") 했는데도 왜 안됐지?
stackoverflow에 동일한 문제를 겪으신 분이 있던데, 그거에 대한 답변은 안 달려서 아직 난제!
반응형
'JAVA > Application' 카테고리의 다른 글
[Java][Backend] null 반환 리팩터링 (0) | 2024.03.08 |
---|---|
[Spring] AOP로 편리하게 jwt token 검증하기 (0) | 2024.03.02 |
Spring의 캐싱 기능 (0) | 2023.08.27 |
[자바/스프링] 비즈니스 로직 층 설계 (0) | 2023.08.12 |
[자바/스프링] 데이터 액세스 층 설계 (0) | 2023.08.11 |