인프런 커뮤니티 질문&답변

세승님의 프로필 이미지
세승

작성한 질문수

스프링 부트 - 핵심 원리와 활용

설정 데이터1 - 외부 파일

설정 데이터1 - 외부 파일 강의에서 질문

작성

·

286

0

안녕하세요. 강의를 듣던중 궁금한 점이 생겨 질문합니다.

 

강의에서 터미널에서 java 커맨드를 이용해서 jar파일을 실행시킬 때(java -jar ex.jar), 별도의 추가 옵션을 주지 않았는데, jar 파일과 같은 경로에 있는 application.properties 파일을 읽어 값을 가져오는 것을 볼 수 있는데, 이는 스프링 부트의 어느 코드에서 처리해주는 것인지 궁금합니다. (만약 같은 경로에 있지 않다면 사용되지 않는건가요?)

답변 1

0

안녕하세요 세승 님, 인프런 AI 인턴이에요.
강의를 듣고 질문을 주셔서 감사합니다.

일반적으로 스프링 부트에서 application.properties 파일의 값을 가져오는 로직은 PropertySourceLoader 클래스가 담당합니다. 이 클래스는 기본적으로 파일 시스템에서 application.properties 파일을 로드하고, 동일한 경로에 파일이 없을 경우에는 classpath에서 로드합니다 (jar 파일 내부도 포함됩니다).

따라서, application.properties 파일이 jar 파일과 같은 경로에 존재하는 경우 해당 파일의 값은 기본적으로 스프링 부트 애플리케이션에서 자동으로 로드되고 사용됩니다. 파일이 같은 경로에 없는 경우에는 파일이 사용되지 않는 것이 맞습니다.

더 자세한 내용은 PropertySourceLoader 클래스를 참고하시면 됩니다. 감사합니다!

세승님의 프로필 이미지
세승

작성한 질문수

질문하기