• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

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

답변을 작성해보세요.

1

자바를 실행할 때 spring.config.location 의 기본값을 다른 값으로 변경하고 계신거니까요. 말씀하신대로 기본값은 수업에서 설명한대로 4개의 위치를 참조하게 되어있습니다. 그런데 보여주신 스크립트는 그 기본값을 변경하는거지 추가하는게 아닙니다. 그렇기 때문에 변경하는 값에 클래스패스:/~~~를 추가하지 않으면 그 안에 있는 설정이 적용되지 않겠죠.