티스토리 뷰
스프링으로 개발하면서 yaml 파일 관련해서 공부한 내용을 포스팅해봤습니다.
개발 환경은 다음과 같습니다.
- Spring Boot Version : 3.0.1
- Java Version : 17
- Kotlin Version : 1.8.21
https://github.com/laboratory-kkoon9/kotlin-spring
배경
데이터베이스를 docker 올려서 개발하려고 spring에서 yaml로 환경설정 방법을 알아봤습니다.
스프링 부트 2.4 버전부터 application.yml 하나의 파일로 여러 환경변수를 관리할 수 있게 되었습니다.
자세한 내용은 아래 블로그에서 확인해보시면 됩니다.
http://honeymon.io/tech/2021/01/16/spring-boot-config-data-migration.html
[spring-boot] 2.4 부터 변경된 구성파일 처리방식 살펴보기 - I'm honeymon(JiHeon Kim).
스프링 부트 2.4(https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.4-Release-Notes) 출시노트를 살펴보면 인상적인 2가지가 있다. 애플케이션 구성파일(application.yml 혹은 application.properties)의 작동방식
honeymon.io
docker-compose.yml
version: "3.8"
services:
hibernate_batch_mysql:
image: mysql:5.7
platform: linux/amd64
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: cafe
ports:
- "3306:3306"
이 포스팅에서는 docker-compose에 대한 설명은 생략하겠습니다.
도커를 깔고, 위 yml을 실행시켜주면 다음과 같이 local에 실행됩니다.
application.yml
aes:
key: cafeSpring
spring:
jpa:
database-platform: org.hibernate.dialect.MariaDBDialect
properties:
hibernate:
jdbc:
time_zone: Asia/Seoul
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
---
spring:
config:
activate:
on-profile: dev
jpa:
hibernate:
ddl-auto: update
properties:
hibernate:
jdbc:
time_zone: Asia/Seoul
format_sql: true
datasource:
url: jdbc:mysql://localhost:3306/cafe?characterEncoding=UTF-8
username: root
password: root
환경을 구분하는 구분자는 --- 입니다.
맨 위에는 모든 환경에서 사용하는 공통 환경변수라고 생각해주시면 됩니다.
다른 환경(ex prod 환경)을 추가하고 싶다면 위 코드 아래 구분자를 추가하고 그 환경의 변수들을 적어주시면 됩니다.
정리
현업에서는 환경 별로 application.yml를 관리했었는데, 혼자 만들어보는 프로젝트에서는 하나의 파일에서 환경변수를 관리해보았습니다.
잘못된 부분이나 궁금한 점은 코멘트 부탁드립니다.
읽어주셔서 감사합니다.
'개발 노트' 카테고리의 다른 글
[스프링+코틀린] 0000-00-00 00:00:00(zeroDateTime)인 LocalDateTime 다루기 (0) | 2023.09.19 |
---|---|
git push한 commit 취소하기 (0) | 2023.09.01 |
[스프링+자바] Failed to deserialize java.time.LocalDateTime (0) | 2023.08.28 |
[스프링+코틀린] kotest로 리팩터링 내성 파악하기 (0) | 2023.08.20 |
git merge 옵션 squash (0) | 2023.08.10 |
- Total
- Today
- Yesterday
- 디자인 패턴
- JPA
- 이팩티브 자바
- node.js
- 클린 아키텍처
- Spring
- Algorithm
- 테라폼
- 클린 코드
- 이펙티브 자바
- Effective Java
- kotest
- BOJ
- Olympiad
- programmers
- 객체지향
- 디자인패턴
- AWS
- MSA
- Kotlin
- 백준
- 코테
- 알고리즘
- C++
- kkoon9
- BAEKJOON
- Java
- Spring Boot
- 정규표현식
- 프로그래머스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |