>  기사  >  Java  >  Spring Boot에서 XML 요청 및 응답에 대한 지원을 확장하는 방법 소개

Spring Boot에서 XML 요청 및 응답에 대한 지원을 확장하는 방법 소개

不言
不言원래의
2018-09-27 16:02:242481검색

이 기사는 Spring Boot에서 XML 요청 및 응답 지원을 확장하는 방법을 소개합니다. 이는 특정 참고 가치가 있으므로 도움이 될 수 있습니다.

이전의 모든 Spring Boot 튜토리얼에서는 HTML 및 JSON 형식에 대한 요청 및 응답 처리만 언급하고 사용했습니다. 그렇다면 XML 형식의 요청을 컨트롤러의 개체로 빠르게 패키징하는 방법과 개체를 XML 형식으로 반환하는 방법은 무엇입니까?

구현 원칙: 메시지 변환기

위의 질문을 확장하기 전에 먼저 Spring Boot에서 HTTP 요청 구현이 Spring MVC를 사용한다는 점을 알아야 합니다. Spring MVC에는 메시지 변환기(Message Converter)라는 개념이 있는데, 이는 주로 다양한 형식의 요청 데이터를 처리하고 이를 객체로 변환하여 더 나은 프로그래밍 경험을 제공하는 일을 담당한다.

HttpMessageConverter 인터페이스는 메시지 변환기의 유형 판단, 판단, 읽기 및 쓰기 작업을 추상화하는 Spring MVC에 정의되어 있습니다.

public interface HttpMessageConverter<T> {

    boolean canRead(Class<?> clazz, [@Nullable](https://my.oschina.net/u/2896689) MediaType mediaType);

    boolean canWrite(Class<?> clazz, [@Nullable](https://my.oschina.net/u/2896689) MediaType mediaType);

    List<MediaType> getSupportedMediaTypes();

    T read(Class<? extends T> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException;

    void write(T t, [@Nullable](https://my.oschina.net/u/2896689) MediaType contentType, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException;

}

우리 모두 알고 있듯이 Content-Type은 다음과 같습니다. HTTP 요청에는 다양한 형식이 있습니다. 정의, Xml 형식의 메시지 변환을 지원하려면 해당 변환기를 사용해야 합니다. Spring MVC에는 기본적으로 Jackson, MappingJackson2XmlHttpMessageConverter에 의해 구현된 변환기 세트가 이미 있습니다.

확장 구현

1단계: 를 도입하고 jackson-dataformat-xml 종속성을 추가하기만 하면 Spring Boot가 자동으로 MappingJackson2XmlHttpMessageConverter 구현을 도입합니다.

@Configuration
public class MessageConverterConfig1 extends WebMvcConfigurerAdapter {
    [@Override](https://my.oschina.net/u/1162528)
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.xml();
        builder.indentOutput(true);
        converters.add(new MappingJackson2XmlHttpMessageConverter(builder.build()));
    }
}

동시에 주석은 Xml 데이터와 개체 속성 유지 관리 간의 관계도 위 종속성에 속하므로 이 종속성도 필수입니다.

2단계: 객체와 Xml 사이의 관계 정의

기본 확장을 완료한 후 주석에 해당하는 Java 객체를 정의하여 코드를 단순화할 수 있습니다. 주로 get, set 및 생성자 함수를 생성하는 데 사용됩니다. @JacksonXmlRootElement 및 @JacksonXmlProperty 주석은 xml의 객체 속성 간 일치성을 유지하는 데 사용됩니다.

위에서 구성한 User 개체에 매핑할 수 있는 Xml 샘플은 다음과 같습니다(위 xml을 사용하여 나중에 인터페이스를 요청할 수 있습니다).

<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-xml</artifactId>
</dependency>

3단계: xml 요청을 수신할 인터페이스 만들기

완료 후

@Data
@NoArgsConstructor
@AllArgsConstructor
@JacksonXmlRootElement(localName = "User")
public class User {

    @JacksonXmlProperty(localName = "name")
    private String name;
    @JacksonXmlProperty(localName = "age")
    private Integer age;

}

마지막으로 Spring Boot 애플리케이션을 시작하고 POSTMAN과 같은 요청 도구를 통해 이 인터페이스를 사용해 보면 XML이 요청되고 반환되는 것을 볼 수 있습니다. 처리된 XML 콘텐츠가 반환됩니다. (

케이스 코드

)

위 내용은 Spring Boot에서 XML 요청 및 응답에 대한 지원을 확장하는 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.