Programing/JAVA

Yaml 파일 객체화 yaml 파일 읽기 snakeyaml

리커니 2023. 2. 17.
반응형

이번 포스팅에서는 .yaml 파일을 읽어 활용하는 방법을 알아보겠습니다.

snakeyaml 이라는 라이브러리를 사용할 것이고, 의존성 주입은 아래의 링크를 참고하세요!

 

Link : https://mvnrepository.com/artifact/org.yaml/snakeyaml

 

1. gradle 의존성 주입

implementation group: 'org.yaml', name: 'snakeyaml', version: '1.33'

 

2. test.yml 파일 생성 [test.yml]

user:
    name: aljjabaegi
    blog: aljjabaegi.tistory.com

 

3. yaml 파일을 구조체할 class 생성 [YamlTest.java]

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class YamlTest {
    private User user;

    @Getter
    @Setter
    public static class User {
        private String name;
        private String blog;
    }
}

롬복 어노테이션을 활용합니다.

 

4. yaml to Class

import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.Constructor;
.
.
.

Yaml yaml = new Yaml(new Constructor(YamlTest.class));
YamlTest yamlTest = (YamlTest) yaml.load(new ClassPathResource("test.yml").getInputStream());
System.out.println(yamlTest.getUser().getName());
System.out.println(yamlTest.getUser().getBlog());

 

 

위에서 생성한 classPath에 있는 test.xml을 읽어 YamlTest 객체로 컨버팅하는 코드 입니다. 

라이브러리에서는 값에 접근하는 방법 외서 수정하는 방법 같은 것은 제공하지 않는 것 같습니다. 

(자세히 안찾아봄.. 있다면 댓글 남겨주세요..)

 

yaml 파일을 읽어 클래스로 만드는 방법을 알아보았습니다. 주의하셔야 될 점은 Getter, Setter는 꼭 있어야 하고

변경할 구조체의 명칭이나 뎁스가 정확히 일치해야만 변환이 되니 오탈자에 조심하세요!

반응형

댓글

💲 추천 글