Programing/JAVA

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

리커니 2023. 2. 17. 16:30
반응형

이번 포스팅에서는 .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는 꼭 있어야 하고

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

반응형