2016-05-10 10 views
2

В традиционной Spring MVC, я могу продлить WebMvcConfigurationSupport и сделайте следующее:Что такое замена WebMvcConfigurationSupport в Spring Boot?

@Override 
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) { 
    configurer.favorPathExtension(false). 
    favorParameter(true). 
    defaultContentType(MediaType.APPLICATION_JSON). 
    mediaType("xml", MediaType.APPLICATION_XML); 
} 

Как сделать это в приложении Spring загрузки? Мое понимание заключается в том, что добавление WebMvcConfigurationSupport с @EnableWebMvc отключит автоконфигурацию Spring Boot WebMvc, чего я не хочу.

ответ

5

Per Spring Загрузочный ссылка на auto configuration and Spring MVC:

Если вы хотите получить полный контроль над Spring MVC, вы можете добавить свой собственный @Configuration аннотированный с @EnableWebMvc. Если вы хотите сохранить функции Spring Boot MVC, и просто хотите добавить дополнительную конфигурацию MVC (перехватчики, форматировщики, контроллеры представлений и т. Д.), Вы можете добавить свой собственный @Bean типа WebMvcConfigurerAdapter, но без @EnableWebMvc.

Например, если вы хотите сохранить автоматическую конфигурацию Spring ботинка, и настроить ContentNegotiationConfigurer:

@Configuration 
public class WebMvcConfig extends WebMvcConfigurerAdapter { 

    ... 
    @Override 
    public void configureContentNegotiation(ContentNegotiationConfigurer configurer) { 
     super.configureContentNegotiation(configurer); 
     configurer.favorParameter(..); 
     ... 
     configurer.defaultContentType(..); 
    } 
} 
+0

Вы правы, и я знал это, но класс я в настоящее время расширение не является 'WebMvcConfigurerAdapter' но 'WebMvcConfigurationSupport'. В более поздних версиях представлены параметры конфигурации, которые нет у первого. –

+0

Я не думаю, что можно использовать любую часть WebMvcAutoConfiguration Spring Boot и предоставить свой собственный WebMvcConfigurationSupport, поскольку Spring Boot будет автоматически настраиваться, если нет WebMvcConfigurationSupport. Я думаю, что одним из преимуществ использования Spring Boot является автоматическая настройка. Я бы попытался использовать WebMvcConfigurerAdapter, а для опций, которые НЕ поддерживаются, используйте какой-то BeanPostProcessor, чтобы настроить его вручную. – ikumen

+0

Я попробую. Поскольку ваш ответ не совсем то, что я искал, я не принимаю его сейчас, но я буду его продвигать. Если это сработает, я позже приму ваш ответ. –

 Смежные вопросы

  • Нет связанных вопросов^_^