Spring MVC – Dodawanie obsługi własnych argumentów do metod kontrolerów

Posted on Posted in Java SE, Spring

Jest to pierwszy z planowanego cyklu wpisów o tym jak rozszerzać możliwości framework’a Spring. Zaczniemy od dopisania obsługi nowych argumentów metod kontrolerów.

Zacznijmy od utworzenia prostego obiektu który posłuży do testów:

Następnie tworzymy prosty kontroler:

Oczywiście dopisanie ExampleAttr może w tym przypadku dać nam co najwyżej pustą instancję naszego obiektu (spring domyślnie tworzy obiekt). Jest jednak prosty sposób na implementację sposobu rozwiązywania takiego argumentu, tak aby mieć kontrolę nad jego tworzeniem. W tym celu należy zaimplementować interface HandlerMethodArgumentResolver,

Przedstawiona implementacja jest bardzo prosta i jedyne co robi to zwraca nową instancję obiektu ExampleAttr z sessionId wstawionym w parametr value, trzeba jeszcze tylko zarejestrować klasę ExampleAttrResolver w spring, najprostrzym sposobem jest wykorzystanie WebMvcConfigurerAdapter.

Po tej operacji, uruchomieniu projektu i wywołaniu metody test w naszym TestController zobaczymy że w value ExampleAttr znajduje się id sesji.

Działający przykład można pobrać z repozytorium: spring-argument-resolver.git

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *