在传统的Spring MVC中,我可以扩展WebMvcConfigurationSupport
并执行以下操作:
@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
configurer.favorPathExtension(false).
favorParameter(true).
defaultContentType(MediaType.APPLICATION_JSON).
mediaType("xml", MediaType.APPLICATION_XML);
}
如何在Spring Boot应用程序中执行此操作?我的理解是,添加WebMvcConfigurationSupport
@EnableWebMvc
将禁用Spring Boot WebMvc自动配置,这是我不想要的。
答案 0 :(得分:8)
auto configuration and Spring MVC上的每个Spring引导参考:
如果您想完全控制Spring MVC,可以使用@EnableWebMvc添加自己的@Configuration注释。如果你想保留Spring Boot MVC功能,并且你只想添加额外的MVC配置(拦截器,格式化器,视图控制器等),你可以添加自己的@Bean类型为WebMvcConfigurerAdapter,但没有@EnableWebMvc。
例如,如果您想保留Spring Boot的自动配置,并自定义ContentNegotiationConfigurer:
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
...
@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
super.configureContentNegotiation(configurer);
configurer.favorParameter(..);
...
configurer.defaultContentType(..);
}
}