-
카테고리
-
세부 분야
백엔드
-
해결 여부
해결됨
Profile active 질문입니다.
20.03.30 19:59 작성 조회수 540
0
안녕하세요,
제가 스프링 부트로 만든 애플리케이션을 배포할 때,
nohup java -jar \
-Dspring.config.location=classpath:/application.properties,classpath:/application-$IDLE_PROFILE.properties,/home/ec2-user/app/application-oauth.properties,/home/ec2-user/app/application-real-db.properties \
-Dspring.profiles.active=$IDLE_PROFILE \
$JAR_NAME > $REPOSITORY/nohup.out 2>&1 &
위의 쉘 스크립트문으로 최종 배포를 합니다.
시중에 있는 책의 내용을 그대로 사용한 것인데요,
그런데 제가 궁금한 것은
classpath:/application.properties
와
classpath:/application-$IDLE_PROFILE.properties
는 왜 포함시켜야 작동되는건지 이해가 잘 안갑니다.
-Dspring.config.location=
의 설정은 외부 파일,
즉 여기서 예를들면
/home/ec2-user/app/application-oauth.properties
나
/home/ec2-user/app/application-real-db.properties
와 같은 jar파일 내에 포함되어 있지 않은 외부파일들을 포함시킬 때 쓰는것 아닌가요?
그런데 저 classpath:/~~~를 포함시키지 않으면 실행이 안됩니다.
스프링 부트 jar 파일 내의 ~~.properties 파일들은 jar파일 내에 자동으로 포함되어있는 줄 알았는데 아니더라구요..
원래 그런건가요?
아니면 제가 뭔가 잘못 이해하고 잘못 하고 있는건가요??
답변을 작성해보세요.
1
백기선
지식공유자2020.03.31
자바를 실행할 때 spring.config.location 의 기본값을 다른 값으로 변경하고 계신거니까요. 말씀하신대로 기본값은 수업에서 설명한대로 4개의 위치를 참조하게 되어있습니다. 그런데 보여주신 스크립트는 그 기본값을 변경하는거지 추가하는게 아닙니다. 그렇기 때문에 변경하는 값에 클래스패스:/~~~를 추가하지 않으면 그 안에 있는 설정이 적용되지 않겠죠.
답변 1