김솔샤르
김솔샤르의 인사이트
김솔샤르
전체 방문자
오늘
어제
  • 분류 전체보기 (51)
    • IT (47)
      • 개발로그 (9)
      • 개발지식 (24)
      • 개발일기 (8)
      • 기타 (3)
      • Note (2)
    • 칼럼 (3)
    • 생활정보 (2)

인기 글

최근 댓글

최근 글

태그

  • 러시아월드컵
  • 자바스크립트
  • JavaScript
  • 월드컵
  • jpa
  • 루니
  • 축구
  • epl
  • 포그바
  • 맨유

티스토리

블로그 메뉴

  • 홈
  • 태그
  • 방명록
hELLO · Designed By 정상우.
김솔샤르

김솔샤르의 인사이트

IT/개발지식

Springboot yaml 파일에 List 세팅하기

2021. 8. 5. 00:28

 

yaml property에 list 형식의 데이터를 세팅해줘야 되는 경우가 있다. 이런 경우 두 가지 방식이 있는데, 먼저 아래와 같이 "- "(dash and space) 문법을 활용하면 자바에서 Collection 필드에 주입할 수 있다.

 

my:
 servers:
 - dev.example.com
 - another.example.com

 

그러면 자바 코드에서는 아래와 같이 Collection 필드에 주입된다. dash 뒤에 공백을 한 칸 줘야하는 것을 꼭 잊지말자.@ConfigurationProperty 말고 @Value를 사용할 수도 있는데, @ConfigurationProperty는 bulk injection이 되므로 데이터가 계층 구조일때 편의성이 있다. 반면 단일 필드를 사용할때는 @value가 더 간편한 경우도 있다. 이 밖에 여러 자잘한 차이들이 있긴하나 중요한 내용은 아닌 것 같으므로 궁금하면 자세히 설명해둔 참조글을 읽어보자.

 

@ConfigurationProperties("my")
public class Config {
    private Set<String> servers;
    
    //getter and setter
}

 

또는 String 배열로 바인딩 하는 방법도 있는데, yaml 파일에서 comma로 value를 구분해주면 된다. 

my:
 servers: dev.example.com, another.example.com

 

자바에서 String 배열 타입에 주입되게 된다.

 

@ConfigurationProperties("my")
public class Config {
    private String[] servers;
    
    //getter and setter
}

 

개인적으로 dash 구분이 깔끔하고 좋은 것 같다. String 배열을 꼭 써야겠다면 컬렉션으로 받아서 parsing하면 된다.

 

 

참조

 

https://www.baeldung.com/spring-boot-yaml-list

https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html

https://developpaper.com/differences-between-springboot-value-and-configuration-properties/

반응형
저작자표시 비영리 변경금지 (새창열림)

'IT > 개발지식' 카테고리의 다른 글

Spark 개발 환경 구축하기 - Scala, IntelliJ, SBT  (0) 2021.10.04
Spring Batch - Paging 처리시 주의점  (0) 2021.09.26
객체지향 의존 역전 원리(DIP) 제대로 알기  (0) 2021.08.02
Redis의 다양한 구성을 빠르게 따라해보자  (0) 2021.06.14
Git commit 이력을 깔끔하게 관리하는 2가지 방법  (0) 2021.01.31
김솔샤르
김솔샤르
기술 그리고 삶

티스토리툴바