コンテンツタイプ

Spring MVC がリクエストされたメディア型をリクエストから決定する方法を構成できます (たとえば、Accept ヘッダー、URL パス拡張、クエリパラメーターなど)。

デフォルトでは、Accept ヘッダーのみがチェックされます。

URL ベースのコンテンツ型解決を使用する必要がある場合は、パス拡張に対してクエリパラメーター戦略を使用することを検討してください。詳細については、サフィックスマッチおよびサフィックスマッチと RFD を参照してください。

Java 構成では、次の例に示すように、リクエストされたコンテンツ型の解決をカスタマイズできます。

  • Java

  • Kotlin

@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 で同じ構成を実現する方法を示しています。

<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>