Spring Boot i Thymeleaf - dynamiczne ścieżki - najbardziej optymalne rozwiązanie

0

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

1

a pliki propertisów też ciebie zadowolą i wstrzykiwanie za pomocą @Value ?

0

W sumie dobre podejście, nie wpadłem na to. Już tego próbowałem przy innym projekcie, więc mogłoby się sprawdzić.

Dzięki za naprowadzenie!

0

to jak już będziesz bawił się propsami to od razu pomyśl sobie na beanem który zawiera wszystkie propsy, a jak chesz z czegoś korzystać to wtedy wywołujesz metody tego serwisu (SettingsService/Bean etc).
Jak będziesz mieć mnóstwo takich wartości to łatwiej będzie się tym zarządzać niż potem gmerać po całym projekcie lub kilkudziesięciu modułach

0

Dzięki. Dobra rada - wstrzykuję sobie tam raz te Valuesy a potem je tylko sobie wołam za pomocą takiego serwisu. Sprawdzę to sobie na pewno

1 użytkowników online, w tym zalogowanych: 0, gości: 1