Springboot
Spring에서 XML 형식 응답 처리 방법
hyerann
2023. 12. 6. 22:36
Spring에서 API의 응답을 일반적인 JSON 형식이 아니라 XML 형식으로 응답하는 방법에 대해 정리합니다.
1. build.gradle에 jackson-dataformat-xml 라이브러리를 추가합니다.
https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-xml
를 참고하여 현재 프로젝트의 의존성에 맞는 버전으로 추가합니다.
implementation (group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-xml', version: '2.13.3')
2. JacksonConfig 클래스를 추가합니다.
@Configuration
public class JacksonConfig {
@Bean
public ObjectMapper xmlObejctMapper() {
return new XmlMapper();
}
}
3. WebMvcConfig 클래스를 추가합니다.
@Configuration
@EnableWebMvc
public class WebMvcConfig implements WebMvcConfigurer {
@Autowired
private ObjectMapper xmlObjectMapper;
@Overriede
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(new MappingJackson2xmlHttpMessageConverter(xmlObjectMapper));
}
}
4. 응답 데이터 객체를 생성합니다.
@Data
@AllArgsConstructor
@JacksonXmlRootElement(localName = "Value")
public class Person {
@JacksonXmlProperty(localName = "Name") private String name;
@JacksonXmlProperty(localName = "Age") private int age;
}
5. Controller에 매핑 함수를 작성합니다.
@GetMapping(value = "/person", produces = MediaType.APPLICATION_XML_VALUE)
public Person getPerson() {
return new Person("James", 30);
}