Jak uzyskać refleksyjnie listę wszystkich kontrolerów (najlepiej, jeśli nie tylko adnotowanych, ale także określonych w xml), pasujących do jakiegoś konkretnego adresu URL w aplikacji Spring MVC?Odzyskiwanie listy kontrolerów Spring MVC pasujących do określonego adresu URL
W przypadku odnotowany tylko,
@Autowired
private ListableBeanFactory listableBeanFactory;
...
whatever() {
Map<String,Object> beans = listableBeanFactory.getBeansWithAnnotation(RequestMapping.class);
// iterate beans and compare RequestMapping.value() annotation parameters
// to produce list of matching controllers
}
mogą być używane, ale co zrobić w bardziej ogólnym przypadku, gdy kontrolery mogą być określony w spring.xml config? A co zrobić z parametrami ścieżki żądania?
Jak zamierzasz wykorzystać te informacje? Spring Tool Suite da ci te informacje w IDE. W przeciwnym razie, oto narzędzie, które napisałem: https://github.com/kdgregory/pathfinder (będę scalać niektóre aktualizacje później w tym tygodniu) – kdgregory
Próbuję wdrożyć dynamiczny system menu dla mojej aplikacji internetowej.Nie muszę statycznie analizować kodów źródłowych (mój pomysł tak dobrze już działa), muszę go analizować w czasie rzeczywistym. –
Jak planujesz znaleźć odpowiednie kontrolery w konfiguracji XML? Może mógłbyś uzyskać dostęp do 'org.springframework.web.bind.annotation.support.HandlerMethodResolver.getHandlerMethods()' w czasie wykonywania i przetworzyć zwrócone metody. –