Upozorenje: "Vrsta WebMvcConfigurerAdapter je zastarjela"

1. Uvod

U ovom ćemo brzom vodiču pogledati jedno od upozorenja koja možemo vidjeti pri radu s verzijom Spring 5.x.x, odnosno onom koja se odnosi na zastarjelu WebMvcConfigurerAdapter razred.

Vidjet ćemo zašto se ovo upozorenje događa i kako s njim postupati.

2. Zašto je upozorenje prisutno

Ovo upozorenje pojavit će se ako koristimo Spring verziju 5 (ili Spring Boot 2), bilo prilikom nadogradnje postojeće aplikacije ili izrade nove aplikacije sa starim API-jem.

Krenimo ukratko kroz povijest koja stoji iza toga.

U ranijim verzijama Springa, uključujući i verziju 4, ako smo željeli konfigurirati web aplikaciju, mogli bismo koristiti WebMvcConfigurerAdapter razred:

@Configuration public WebConfig proširuje WebMvcConfigurerAdapter {// ...}

Ovo je apstraktna klasa koja implementira WebMvcConfigurer sučelje i sadrži prazne implementacije za sve naslijeđene metode.

Podklasiranjem ga možemo nadjačati njegove metode koje pružaju kuke u razne MVC konfiguracijske elemente kao što su razrješivači pogleda, presretači i još mnogo toga.

Međutim, Java 8 dodala je koncept zadanih metoda u sučeljima. Naravno, Spring tim je ažurirao okvir kako bi u potpunosti iskoristio nove značajke Java jezika.

3. Rješenje

Kao što je spomenuto, WebMvcConfigurer sučelje, počevši od Spring 5, sadrži zadane implementacije za sve svoje metode. Kao rezultat toga, klasa apstraktnog prilagodnika označena je kao zastarjela.

Da vidimo kako možemo početi koristiti sučelje izravno i riješiti se upozorenja:

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

I to je sve! Promjenu bi trebalo biti prilično lako izvršiti.

Ako ih ima super() poziva na nadjačane metode, trebali bismo ukloniti i one. Inače, možemo poništiti bilo koji od povratnih poziva konfiguracije kao i obično.

Iako uklanjanje upozorenja nije obvezno, preporučljivo je to učiniti jer je novi API prikladniji, a zastarjela klasa može se ukloniti u budućim verzijama.

4. Zaključak

U ovom kratkom članku vidjeli smo kako popraviti upozorenje koje se odnosi na ukidanje WebMvcConfigurerAdapter razred.