Альтернатива устаревшему WebMvcConfigurerAdapter? - PullRequest
0 голосов
/ 12 ноября 2019
@SuppressWarnings("deprecation")
@EnableWebMvc
@Configuration
@ComponentScan("my.projects")

    public class WebConfig extends WebMvcConfigurerAdapter 
    {
        @Override
        public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
            converters.add(new CsvHttpMessageConverter<>());
        }
        public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
            configurer.favorPathExtension(true).
favorParameter(true).
parameterName("mediaType").ignoreAcceptHeader(false)
            .useJaf(false).defaultContentType(MediaType.APPLICATION_JSON).mediaType("xml", MediaType.APPLICATION_XML)
                    .mediaType("json", MediaType.APPLICATION_JSON).mediaType("csv", new MediaType("text", "csv"));
        }
    }

Вышеописанное не будет работать без расширения WebMvcConfigurerAdapter, которое устарело. Есть ли альтернатива?

1 Ответ

0 голосов
/ 12 ноября 2019

Делайте, как подсказывает документация

устарело.
с 5.0 WebMvcConfigurer имеет методы по умолчанию (стало возможным благодаря Java 8базовый уровень) и могут быть реализованы напрямую, без необходимости использования этого адаптера

, и вместо этого у вас есть @Configuration классное приспособление WebMvcConfigurer

@SuppressWarnings("deprecation")
@EnableWebMvc
@Configuration
@ComponentScan("my.projects")
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
        converters.add(new CsvHttpMessageConverter<>());
    }

    @Override
    public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
        configurer.favorPathExtension(true).favorParameter(true).parameterName("mediaType").ignoreAcceptHeader(false)
                .useJaf(false).defaultContentType(MediaType.APPLICATION_JSON)
                .mediaType("xml", MediaType.APPLICATION_XML).mediaType("json", MediaType.APPLICATION_JSON)
                .mediaType("csv", new MediaType("text", "csv"));
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...