spring:
config:
import:
- optional:file:env/dev-db.env
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: ${DB_URL}
username: ${DB_USERNAME}
password: ${DB_PASSWORD}
jpa:
database: mysql
database-platform: org.hibernate.dialect.MySQL8Dialect
open-in-view: false
properties:
hibernate:
show_sql: true
format_sql: true
위와 같이 env 파일을 읽어와서 사용하려고 하였는데 아래와 같은 에러가 발생했다.
Caused by: java.lang.IllegalStateException: File extension is not known to any PropertySourceLoader. If the location is meant to reference a directory, it must end in '/' or File.separator
PropertySourceLoader 가 읽을 수 없는 확장자라는 의미이다.
기본적으로 PropertySourceLoader 가 제공하는 확장자는 .properties, .yml, .json, .xml 이다.
사실 생각해보면 당연하다. .env 라는 확장자는 관례상 환경변수를 나타내는 확장자이지만 공식적인 파일 형식은 아니다. 그러므로 아래와 같이 뒤에 확장자를 명시해주면 에러를 해결할 수 있다.
spring:
config:
import:
- optional:file:env/dev-db.env[.properties]
env 파일을 properties 형식으로 작성해줬으므로 [.properties] 를 붙혀줬다.
'개발' 카테고리의 다른 글
Docker 에서 /docker-entrypoint-initdb.d 를 통한 초기화 시 인코딩 오류 문제 해결법 (1) | 2023.05.01 |
---|---|
docker-compose 로 개발 환경의 DB 구축하기 (0) | 2023.04.22 |
plugin id: 'org.asciidoctor.convert' version: '2.2.1' was not found in any of the following sources 해결법 (0) | 2023.04.16 |
@Modifying 의 flushAutomatically 속성을 명시해야 하는 이유 (0) | 2023.04.09 |
스케줄링, 배치로 S3 이미지 삭제 처리 (0) | 2023.04.05 |