개요
- 최근에는 Json 형식으로 데이터를 주고 받는 것이 보편적
- BUT, 과거에 구현된 Web API 중 일부를 Json을 지원하지 않고 xml만 지원하는 경우도 있음
- JAXB로 XML 표현 가능 !
JAXB
- JAXB는 자바 클래스를 XML로 표현하는 자바 API
- JAXB 의존성 : Spring Boot에서 기본적으로 포함되어있어서 별도의 의존성 추가 없이 바로 사용 가능
Marshal, Unmarshal
Marshal (마샬)
- 정렬시키다 라는 뜻으로 자바 오브젝트를 XML문서로 변환하는 것을 말함
Unmarshal (언마샬)
- 반대로, XML 문서를 자바 오브젝트로 변환하는 것을 말함
list 태그용 Object
@XmlAccessorType(XmlAccessType.FIELD)
- @XmlAccessorType 종류가 여러개 있지만 적지 않을 경우 public 요소까지 모두 바인딩을 시도
- BUT, lombok의 @Setter를 사용할 때는 생기는 set 메서드도 바인딩을 시도하기 때문에 예외 발생
- 따라서 , private 요소들만 바인딩을 시도하도록 XmlAccessType.FIELD를 적어줌
@XmlRootElement
- 가장 최상위 태그라고 알려주는 역할이고, name값에 실제 태그명을 적어줌
Marshal
Unmarshal
참조 : https://velog.io/@dragontiger/Spring-Boot%EC%97%90%EC%84%9C-xml-Java-Object-%EB%B3%80%ED%99%98%ED%95%98%EA%B8%B0-feat.-Jaxb | dragontiger.log