Chcę mieć możliwość zdefiniowania klasy kontrolera nadrzędnego, która będzie miała mapowanie "/ api", a następnie rozszerzyć ten kontroler przy pomocy różnych implementacji. Więc ApiController będą miały:Udostępnianie wspólnej ścieżki nadrzędnej podczas implementowania kontrolerów sprężyn
@Controller
@RequestMapping("/api")
Na przykład, mój kontroler Użytkownik powinien przedłużyć kontroler baza API i również dodać „/ Users” do ścieżki, więc będzie to odpowiedź na „/ API/użytkowników” żądań. Tak więc UserController będzie miał:
@Controller
@RequestMapping("/users")
, ale ponieważ rozszerza ApiController, będzie skutecznie odpowiadać/api/użytkowników.
Naturalnie mogę dodać "/ api" do wszystkich kontrolerów, aby osiągnąć to bez klasy rodzica, ale wolę zrobić to "właściwą drogą", jeśli to możliwe, aby móc zdefiniować moje implementacje api za pomocą czystsza i bardziej widoczna ścieżka.
Próbowałem rozszerzenie klasy bazowej ApiController, ale to nie działa, UserController jeszcze odpowiedzi na „/ użytkowników” i ignoruje klasy bazowej „/ API”.
Cześć, przepraszam, jakoś zapomniałem o twojej odpowiedzi. Niestety, nie zrobię tego, czego potrzebuję, ponieważ chcę, aby klasy implementujące również miały swoje własne mapowanie "base", więc ExtendedAbstractController powinien mieć adnotację @RequestMapping ("/ another"), aby WSZYSTKIE jej metody miały ten prefiks. W Twoim rozwiązaniu tylko metody z adnotacjami typu RequestMapping będą miały rozszerzoną adnotację. – TheZuck
@ TheZuck tak, widzę i wiem, że nie jest to, czego potrzebujesz. : [Po prostu starałem się pomóc tobie :) W tej chwili Spring nie obsługuje dziedziczenia adnotacji, jak chcesz ... Btw możesz iść do wiosny JIRA i głosować na to samo lub stworzyć nowy problem ze swoimi sugestiami. ;) – masted