在普通的Spring应用程序中,我有:
@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
@Override
protected Map<String, MediaType> getDefaultMediaTypes() {
Map<String, MediaType> mediaTypes = super.getDefaultMediaTypes();
mediaTypes.put("extension", new MediaType("foo", "bar"));
return mediaTypes;
}
}
所以我可以这样做:
@RequestMapping(produces = "foo/bar")
public void test() { ... }
然后致电:
http://.../myResource.extension
当我使用Spring Boot执行此操作时,extends WebMvcConfigurationSupport
将阻止所有自动配置。
那么如何轻松地使用Spring Boot注册新的Extension-Accept-Header映射?
答案 0 :(得分:2)
这应该这样做,我已经使用Boot 1.2.1.RELEASE
验证了代码@Configuration
public class EnableWebMvcConfiguration extends WebMvcAutoConfiguration.EnableWebMvcConfiguration {
@Override
protected Map<String, MediaType> getDefaultMediaTypes() {
Map<String, MediaType> mediaTypes = super.getDefaultMediaTypes();
mediaTypes.put("extension", new MediaType("foo", "bar"));
return mediaTypes;
}
}
答案 1 :(得分:1)
根据avi的回答,我们应该使用extends WebMvcAutoConfiguration.EnableWebMvcConfiguration
要添加其他扩展程序和媒体类型,可能更容易覆盖configureContentNegotiation
:
@Override
protected void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
configurer
.mediaType("extension", new MediaType("foo", "bar"));
}