XML ↔ Java Object 변환

최승아·2021년 11월 24일
0

개요

  • 최근에는 Json 형식으로 데이터를 주고 받는 것이 보편적
  • BUT, 과거에 구현된 Web API 중 일부를 Json을 지원하지 않고 xml만 지원하는 경우도 있음
  • JAXB로 XML 표현 가능 !

JAXB

  • JAXB는 자바 클래스를 XML로 표현하는 자바 API
  • JAXB 의존성 : Spring Boot에서 기본적으로 포함되어있어서 별도의 의존성 추가 없이 바로 사용 가능

Marshal, Unmarshal

Marshal (마샬)

  • 정렬시키다 라는 뜻으로 자바 오브젝트를 XML문서로 변환하는 것을 말함

Unmarshal (언마샬)

  • 반대로, XML 문서를 자바 오브젝트로 변환하는 것을 말함

list 태그용 Object

  • xml 데이터를 담아줄 VO 클래스 생성

@XmlAccessorType(XmlAccessType.FIELD)

  • @XmlAccessorType 종류가 여러개 있지만 적지 않을 경우 public 요소까지 모두 바인딩을 시도
  • BUT, lombok의 @Setter를 사용할 때는 생기는 set 메서드도 바인딩을 시도하기 때문에 예외 발생
  • 따라서 , private 요소들만 바인딩을 시도하도록 XmlAccessType.FIELD를 적어줌

@XmlRootElement

  • 가장 최상위 태그라고 알려주는 역할이고, name값에 실제 태그명을 적어줌

Marshal

Unmarshal

  • 위의 코드에서 input은 String값

참조 : 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

profile
⭐ 개발 정리 공간 ⭐

0개의 댓글