Aviso: “O tipo WebMvcConfigurerAdapter está obsoleto”
1. Introdução
Neste tutorial rápido, daremos uma olhada em um dos avisos que podemos ver ao trabalhar com uma versão do Spring 5.x.x, ou seja, aquele que se refere à classe obsoletaWebMvcConfigurerAdapter.
Vamos ver por que esse aviso acontece e como lidar com ele.
2. Por que o aviso está presente
Este avisowill appear if we’re using Spring version 5 (or Spring Boot 2), ao atualizar um aplicativo existente ou construir um novo aplicativo com a API antiga.
Vamos analisar brevemente a história por trás disso.
Em versões anteriores do Spring, até e incluindo a versão 4, se quiséssemos configurar um aplicativo da web, poderíamos fazer uso da classeWebMvcConfigurerAdapter:
@Configuration
public WebConfig extends WebMvcConfigurerAdapter {
// ...
}
Esta é uma classe abstrata que implementa a interfaceWebMvcConfigurer e contém implementações vazias para todos os métodos herdados.
Ao subclassificá-lo, podemos substituir seus métodos, que fornecem ganchos em vários elementos de configuração do MVC, como resolvedores de exibição, interceptores e muito mais.
No entanto, o Java 8 adicionou o conceito de métodos padrão nas interfaces. Naturalmente, a equipe do Spring atualizou a estrutura para fazer pleno uso dos novos recursos da linguagem Java.
3. Solução
Conforme mencionado, a interfaceWebMvcConfigurer, começando com Spring 5, contém implementações padrão para todos os seus métodos. Como resultado, a classe abstrata do adaptador foi marcada como reprovada.
Vamos ver comowe can start using the interface directly and get rid of the warning:
@Configuration
public WebConfig implements WebMvcConfigurer {
// ...
}
E isso é tudo! A mudança deve ser bastante fácil de fazer.
Se houver chamadassuper() para métodos sobrescritos, devemos removê-los também. Caso contrário, podemos substituir qualquer um dos retornos de chamada de configuração, como de costume.
Embora a remoção do aviso não seja obrigatória, é recomendável fazê-lo, pois a nova API é mais conveniente e a classe obsoleta pode ser removida em versões futuras.
4. Conclusão
Neste breve artigo, vimos como corrigir o aviso referente à depreciação da classeWebMvcConfigurerAdapter.