반응형
이번 포스팅에서는 .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는 꼭 있어야 하고
변경할 구조체의 명칭이나 뎁스가 정확히 일치해야만 변환이 되니 오탈자에 조심하세요!
반응형
'Programing > JAVA' 카테고리의 다른 글
Swagger 잘~만들어보기 응답 Model 명확하게, 타입, 최대 최소값 표출하기 (1) | 2023.02.27 |
---|---|
java 카카오 간편 로그인 구현하기 처음부터 자세히! (1) | 2023.02.24 |
Java List<?> 정렬, 다중조건정렬, 오름, 내림차순 Comparator (0) | 2023.01.25 |
Custom Annotation 생성하기 @interface 알짜만 빼먹기 (0) | 2022.11.15 |
Java Functional Interface 알짜만 빼먹기 Predicate/Spplier/Consumer/Function (1) | 2022.10.05 |
댓글