Avertissement: “Le type WebMvcConfigurerAdapter est obsolète”

Avertissement: “Le type WebMvcConfigurerAdapter est obsolète”

1. introduction

Dans ce rapide tutoriel, nous allons jeter un œil à l'un des avertissements que nous pouvons voir lorsque vous travaillez avec une version Spring 5.x.x, à savoir celui qui fait référence à la classe obsolèteWebMvcConfigurerAdapter.

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

2. Pourquoi l'avertissement est présent

Cet avertissementwill appear if we’re using Spring version 5 (or Spring Boot 2), soit lors de la mise à niveau d'une application existante, soit lors de la création d'une nouvelle application avec l'ancienne API.

Passons brièvement en revue l’histoire qui se cache derrière.

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

@Configuration
public WebConfig extends WebMvcConfigurerAdapter {

    // ...
}

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

En le sous-classant, nous pouvons redéfinir ses méthodes, qui fournissent des points d'ancrage dans divers éléments de configuration MVC tels que les résolveurs de vues, les intercepteurs, etc.

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

3. Solution

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

Voyons commentwe can start using the interface directly and get rid of the warning:

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

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

S'il y a des appels desuper() à des méthodes surchargées, nous devrions également les supprimer. Sinon, nous pouvons remplacer les 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 classeWebMvcConfigurerAdapter.