如何将csv MimeType添加到spring内容协商?

时间:2017-06-27 11:09:26

标签: spring csv spring-mvc

我正在创建一个可以提供xml,json和csv输出的webservice方法:

@GetMapping(produces = {APPLICATION_XML_VALUE, APPLICATION_JSON_VALUE, "text/csv"})
public Rsp get() {
}

问题:我需要将text/csv内容类型添加到configureContentNegotiation()。但是怎么样?因为不接受String,并且MediaType.TEXT_CSV不存在(即使RFC7111将其定义为有效的mimetype。

@Configuration
public class WebConfiguration extends WebMvcConfigurerAdapter {
    @Override
    public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
        configurer
                .favorParameter(true)
                .mediaType("json", MediaType.APPLICATION_JSON)
                .mediaType("xml", MediaType.APPLICATION_XML)
                .mediaType("csv", "text/csv"); //this is invalid
    }
}

1 个答案:

答案 0 :(得分:1)

.mediaType("csv", new MediaType("text", "csv"));

甚至在application.properties中配置如下:

spring.mvc.media-types.json=application/json
spring.mvc.media-types.xml=application/xml
spring.mvc.media-types.csv=text/csv