2015-08-09 11 views
7

Czy można zdefiniować wartość adnotacji @RequestMapping w Spring, definiując ją w pliku właściwości?Spring: define @RequestMapping w pliku właściwości

Właściwie robię coś takiego:

@Controller 
@RequestMapping("/xxx") 
public class MyController { 
... 
} 

Ale chciałbym, aby zapisać ścieżkę /xxx w pliku właściwości. Czemu? Na przykład jest mniej prawdopodobne, że zajmuję się szablonami w szablonach, jeśli zmieniam nazwę ścieżki w kontrolerze.

W innych ramach jest to dozwolone (patrz na przykład Symfony).

+0

Jak o '@RequestMapping (System.getProperty ("xxx.mapping.path", "/ XXX"))' – SMA

+1

@SMA że nie będzie działać. Wartości parametrów adnotacji muszą być stałymi w czasie kompilacji. –

+0

@BohuslavBurghardt Właśnie chciałem zdefiniować statyczną zmienną końcową i użyć tej zmiennej tutaj. – SMA

Odpowiedz

14

Powinno być możliwe użycie symboli zastępczych w @RequestMapping, jak na przykład @RequestMapping("${foo.bar}"). Spójrz na documentation więcej szczegółów:

Wzorce w @RequestMapping adnotacji obsługują ${…​} zastępcze wobec właściwości lokalnych i/lub właściwości systemowych i zmiennych środowiskowych. Może to być przydatne w przypadkach, gdy ścieżka, na którą jest zmapowany kontroler, może wymagać dostosowania przez konfigurację. Aby uzyskać więcej informacji o elementach zastępczych, zobacz javadocs klasy PropertyPlaceholderConfigurer.

+0

Zastanawiam się nad czymś takim (jak zrobiono w '@ Value'), ale kiedy próbowałem wywołać' @ RequestMapping' klucz zdefiniowany w pliku 'application.properties', np. my.xx =/xxx, ID IntelliJ Idea IDE zgłosił następujący problem: 'Nie można rozwiązać @PathVariable my.xx'. Dowolny pomysł? – JeanValjean

+0

@JeanValjean Czy to działa, gdy uruchamiasz aplikację? Inspekcje IntelliJ nie zawsze są doskonałe, więc może to być po prostu fałszywy-pozytywny –

+0

Mój błąd, jeśli dodam definicję w pliku application.properties, wszystko jest w porządku. Problem występuje, gdy próbuję wczytać ciąg z innego pliku właściwości. Muszę znaleźć sposób na odczytanie z niego. – JeanValjean

Powiązane problemy