Avertissement: «Le type WebMvcConfigurerAdapter est obsolète»

1. Introduction

Dans ce rapide didacticiel, nous examinerons l'un des avertissements que nous pouvons voir lorsque vous travaillez avec une version Spring 5.xx, à savoir celui faisant référence à la classe obsolète WebMvcConfigurerAdapter .

Nous verrons pourquoi cet avertissement se produit et comment le gérer.

2. Pourquoi l'avertissement est-il présent

Cet avertissement apparaîtra si nous utilisons Spring version 5 (ou Spring Boot 2) , que ce soit lors de la mise à niveau d'une application existante ou lors de la création d'une nouvelle application avec l'ancienne API.

Passons brièvement en revue l'histoire derrière cela.

Dans les versions antérieures de Spring, jusqu'à la version 4 incluse, si nous voulions configurer une application Web, nous pouvions utiliser la classe WebMvcConfigurerAdapter :

@Configuration public WebConfig extends WebMvcConfigurerAdapter { // ... }

Il s'agit d'une classe abstraite qui implémente l' interface WebMvcConfigurer et contient des implémentations vides pour toutes les méthodes héritées.

En le sous-classant, nous pouvons remplacer ses méthodes, qui fournissent des crochets dans divers éléments de configuration MVC tels que les résolveurs de vue, les intercepteurs, etc.

Cependant, Java 8 a ajouté le concept de méthodes par défaut dans les interfaces. Naturellement, l'équipe Spring a mis à jour le framework pour tirer pleinement parti des nouvelles fonctionnalités du langage Java.

3. Solution

Comme mentionné, l' interface WebMvcConfigurer , à partir de Spring 5, contient des implémentations par défaut pour toutes ses méthodes. Par conséquent, la classe d'adaptateur abstraite a été marquée comme obsolète.

Voyons comment nous pouvons commencer à utiliser l'interface directement et nous débarrasser de l'avertissement :

@Configuration public WebConfig implements WebMvcConfigurer { // ... }

Et c'est tout! Le changement devrait être assez facile à faire.

S'il y a des appels super () à des méthodes surchargées, nous devrions également les supprimer. Sinon, nous pouvons remplacer n'importe lequel des rappels de configuration comme d'habitude.

Bien que la suppression de l'avertissement ne soit pas obligatoire, il est recommandé de le faire, car la nouvelle API est plus pratique et la classe obsolète peut être supprimée dans les versions futures.

4. Conclusion

Dans ce court article, nous avons vu comment corriger l'avertissement faisant référence à la dépréciation de la classe WebMvcConfigurerAdapter .