Cześć.
Mam aplikację w Spring Boot i chciałbym rozszerzyć jej funkcjonalność o dynamiczne mapowanie ścieżek.
Co mam na myśli? Aktualnie mam aplikację pod adresem localhost:8080/app i chciałbym, aby te same metody były wołane dla ścieżki /app2 i /app3 - jednak z podmianą widoku dla każdej z nich.
Na widoku używam Thymeleaf.
Z powodu rozszerzalności wolałbym uniknąć sztywnego pisania kodu (wszywania na stałe prefiksów ścieżek) i powielania kontrolerów.
Myślałem o czymś w stylu:
@RequestMapping("/{app}/examplePage/")
public String searchWithSearchTerm(@PathVariable String app) {
// logic
return app+"/examplePage";
}
Gdzie String app byłby jedną z trzech dozwolonych ścieżek (zapisanych gdzieś w bazie). Jednak nie wiem czy to nie jest zbyt mało optymalne rozwiązanie - za każdym requestem serwer przemiatałby i porównywał tę listę dozwolonych ścieżek.
Dlatego też chciałbym zapytać, czy możliwe jest jakieś 'zarejestrowanie' dozwolonych bazowych ścieżek (wczytanie tej listy z bazy) przy starcie aplikacji/kontekstu?
Dzięki temu aplikacja znałaby już dozwolone prefiksy i całość działałaby sprawniej (tak myślę).
Widziałem tez rozwiązanie w stylu multiple request mapping:
@RequestMapping(value={"/app/","/app2/","/app3/"})
Ale dla lepszej kontroli nad kodem, wolałbym gdyby te prefiksy mogły zostać wstrzyknięte przy inicjalizacji.
Jeśli ktoś z Was napotkał taki problem lub ma na to pomysł i chciałby się podzielić, będę wdzięczny.
Z góry dzięki