스프링 부트의 파일 자동 스캐닝 기능을 오해하여 헤매는 경험을 하였습니다. 설정에 따른 정확한 기능과 차이를 기록해주려고 합니다
우선 잘못 알고 있었던 것은 자동 스캐닝은 .properties 파일을 자동으로 스캐닝 하는 것이 아닌 application.properties 파일을 기본 경로인 classpath:/ 와 classpath:/config 에서 자동으로 스캐닝 하는 것이었습니다.
하여 application-database.properties 또는 database.properties 파일이 자동으로 위의 경로에 저장되어 있더라도 스캐닝이 되지 않는 것이 정상이었습니다.
설정 파일 스캐닝 관련 설정들을 정리해보면 아래와 같습니다.
다시 돌이켜보면 당연한 사실들인데 하나에 꽂히고 나니 생각의 틀에서 벗어나기 어려웠다.
.properties 형식을 사용한다면 여러 파일을 추가할 때 spring.config.import을 매번 추가해주어 가독성을 올려주면 좋을 듯 합니다. .yml은 자체로 가독성이 높을 수 있게 여러 파일을 나열 할 수 있어 괜찮은 것 같습니다.
P.S. 설정이 적용이 되었는지 확인하는 과정에 db설정 값을 사용했는데 h2 의존성이 추가 되어있어 서버 실행 시 database가 지정되어있지 않다는 오류를 뱉어내지 않는 경우들이 있어 더 오해가 커졌었습니다. 의존성 설정에 따라 설정 값이 달라지는 스프링 부트의 특징을 잘 알고 사용해야 될 듯 합니다.