application.yml을 Spring Boot에서 읽어오지 못 함

Eunho·2023년 9월 21일
0

TroubleShooting

목록 보기
8/8

문제

application.yml에서 mail.address.admin 값을 읽어오지 못함

java.lang.IllegalArgumentException: Could not resolve placeholder 'mail.address.admin' in value "${mail.address.admin}"

분석

  1. application-dev.yml 관련
  • configuration에 환경 변수 확인
    • SPRING_PROFILES_ACTIVE=dev
    • The following 1 profile is active: "dev"

원인

application-dev.yml이 "src/main/resources/mapper" 경로에 있음
-> 별도로 설정해주지 않으면, src/main/resources에서만 yml 파일을 찾고, 서브 디렉토리는 고려 사항이 아님 -> 결과적으로 값을 읽어오지 못 함

의문

  - The following 1 profile is active: "dev"

- 2023-09-22 00:38:06.059  INFO 4756 --- [           main] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
Hibernate: 
    drop table if exists item CASCADE 
  • 로그를 보면, create-drop 설정은 잘 읽어오는 거 같은데 왜 mail은 못 읽어왔지? 이거 때문에 경로가 원인일 수 있음을 간과했다.

해결

  • 오류 : application-dev.yml 디렉토리를 src/main/resources/mapper -> src/main/resources로 이동함
  • 의문
    • Spring Boot Cache나 Intellij의 캐시때문에, 이전에 로드된 설정은 반영이 되지만, 추가 설정(나의 경우 mail.address.admin)은 읽어오지 못할 가능성이 있음
    • 애플리케이션을 여러 번 실행하거나 설정을 반복해서 변경할 때 발생할 수도 있다고 함

새로운 지식을 얻었다!! 캐시가 반영될 수 있다니..

profile
🌱우당탕탕 메모장 (●'◡'●)🌱

0개의 댓글