자바/리팩토링
[리팩토링] properties 파일을.. yaml 로 변경하면서 생긴, gradle 문제 해결
OverTheHorizon3410
2024. 1. 19. 00:18
Properties 파일을 Yaml 로 변경하면서 현재 domain 기존 설정 부분이 null 로 넘어오는 문제가 생겼다

- props 의 경우 키 - 밸류( LinkedHashMap ) 으로 데이터를 호출함.

- 문제는 해당 key value 구조의 yaml 을 기존과 같이 들고오려면..

- profile 에서 props 구분을 [spring.profile.active] 로 할 수 있는게 아니라
- props[키][키][키] ⇒ 이런식으로 호출하도록 해야함;

해결법
- yaml 의 평면화 작업
- 키 밸류 구조를 기존 properties 의 방식처럼
- 키.키.키 ⇒ 이런식으로 평탄화
재귀를 해야한다. ⇒ 솔직히 이런 작업에서 재귀를 돌리고 싶지 않았다.
- 키 밸류 구조를 기존 properties 의 방식처럼
- 키값으로 직접 호출
해결
import org.yaml.snakeyaml.Yaml
def loadYamlProperties() {
File file = file("src/main/resources/application.yaml")
Yaml yaml = new Yaml()
Map<String, Object> yamlProps = yaml.load(file.newInputStream())
println("yamlProps: ${yamlProps}")
return yamlProps
}
openapi3 {
def props = loadYamlProperties()
def profile = props['spring']['profiles']['active'] == null ? 'local' : props['spring']['profiles']['active']
def domain = props['app']['domain'][profile]
println("domain: ${domain}")
server = domain
title = 'ITEM-BROWSER API'
description = 'ITEM-BROWSER API'
version = '0.0.1'
format = 'yaml' // or json
}
- 각 키들을 직접 정의하는 방식으로 하기로 결정
- 공수를 오래 들이고 싶지 않았다.
Uploaded by N2T