对于最新的稳定版本,请使用 Spring Framework 7.0.6!spring-doc.cadn.net.cn

内容类型

您可以配置Spring MVC如何从请求中确定请求的媒体类型 (例如,Accept头、URL路径扩展、查询参数等)。spring-doc.cadn.net.cn

默认情况下,仅检查 Accept 头。spring-doc.cadn.net.cn

如果您必须使用基于URL的内容类型解析,请考虑使用查询参数策略而不是路径扩展名。有关更多详细信息,请参阅 后缀匹配后缀匹配和RFDspring-doc.cadn.net.cn

在Java配置中,你可以自定义请求的内容类型解析,如下例所示:spring-doc.cadn.net.cn

@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {

	@Override
	public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
		configurer.mediaType("json", MediaType.APPLICATION_JSON);
		configurer.mediaType("xml", MediaType.APPLICATION_XML);
	}
}
@Configuration
@EnableWebMvc
class WebConfig : WebMvcConfigurer {

	override fun configureContentNegotiation(configurer: ContentNegotiationConfigurer) {
		configurer.mediaType("json", MediaType.APPLICATION_JSON)
		configurer.mediaType("xml", MediaType.APPLICATION_XML)
	}
}

以下示例展示了如何在XML中实现相同的配置:spring-doc.cadn.net.cn

<mvc:annotation-driven content-negotiation-manager="contentNegotiationManager"/>

<bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
	<property name="mediaTypes">
		<value>
			json=application/json
			xml=application/xml
		</value>
	</property>
</bean>