환경변수
- 자주 변경되거나 확정되지 않은 데이터
- 같은 용도이지만 개발, 테스트, 운영 등 다양한 조건마다 다른 데이터
- 환경변수가 중요한 이유?
환경변수 위치
- 시스템 환경변수
- properties, YAML 파일
- 클래스 상수
- Spring without Profile
- 약간 무식한(?) 방법
- Maven과 Profile 기능 그리고, properties
mvn -P프로파일명 install
- Maven Profile
- 장점: 스프링 애플리케이션에서는 단순한 설정형태 유지
Code
@Value("${REFRESH_TOKEN}")
private String rToken;
@Value("${spring.datasource.hikari.username}")
private String username;
- Properties with default value
# application.properties
spring.datasource.hikari.jdbc-url=${JDBC_URL:localhost}
spring.datasource.hikari.username=${DB_USER:devuser}
spring.datasource.hikari.password=${DB_PASS:devpass}
Docker env
# docker version 20+
docker run -p 8080:8080 -e DB_USER -e DB_PASS -e JDBC_URL kenu/sb-kenu
# docker version 19+ in AWS EC2
sudo usermod -a -G docker ec2-user
# re login
docker run -e DB_USER=${DB_USER} -e DB_PASS=$DB_PASS -e JDBC_URL=$JDBC_URL -p 8080:8080 kenu/aop-demo
동영상
related