Back to blog
Backend1 min read2023년 10월 11일

[Spring Boot] 로컬에서 application.yaml 에 .env 환경변수 주입하기

프로덕션과 같은 형태의 application.yaml을 유지하면서, 로컬에서만 EnvFile로 변수를 주입하는 방법입니다.

https://popcorn-overflow.tistory.com/17

[Docker, AWS, Spring] docker-compose시 환경변수 전달하고 스프링부트 application.yaml에서 사용하기

지난 자료에서 application.yaml파일을 다음과 같은 형태로 구성했습니다.

spring:
    servlet:
        multipart:
            max-request-size: 30MB
            max-file-size: 30MB
    jpa:
        show-sql: true
        generate-ddl: true
        hibernate:
            ddl-auto: update
            default_batch_fetch_size: 100
    datasource:
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: ${DB_URL}
        username: ${DB_USERNAME}
        password: ${DB_PASSWORD}
        hikari:
            maximum-pool-size: 10

${} 포맷에 있는 변수를 로컬 환경에서 주입하는 방법에 대해 알아봅시다!

선행사항 : 플러그인 EnvFile을 IntelliJ에 설치합니다!!

1. local.env 파일 생성하기

밑의 사진은 지난 게시글에서 가져온 것입니다..

다음과 같이 .env파일을 가지고 계실텐데요, 프로덕션 환경이 아닌 로컬 환경에 맞는 local.env파일을 따로 만들고 변수를 적어줍니다.

local.env

DB_URL=local-db-url
DB_USERNAME=local-db-username
DB_PASSWORD=local-db-password

2. Edit Configurations…

작성해주셨다면 우측 상단 Applicaiton 실행 버튼의 드랍다운 클릭 -> 가장 밑의 Edit Configurations… 로 이동합니다.

3. local.env 파일 등록

Enable EnvFile 체크박스를 체크하시고 하단의 + 아이콘 클릭 -> 여러분의 local.env 파일을 선택해줍니다. (저는 dev.env로 작성했습니다.)

이것만 하면 끝입니다! 실행해보시면 정상 작동 할겁니다.

참고로 저는 IntelliJ의 New UI를 사용중입니다.

프로덕션 환경에서의 .env 파일 적용 방법은 게시글 상단의 링크를 따라가셔서 확인하시면 됩니다.

이제 .env 파일만 gitignore 처리하면 됩니다. 그럼 안전 코딩 하세요~

Topics

spring-bootconfiguration