如何在Spring MVC應用程序中匹配某些特定網址,從而反射性地獲取所有控制器的列表(最好如果不僅註釋,而且還在xml中指定)?反思性地獲取匹配特定網址的Spring MVC控制器列表
在註釋只的情況下,
@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
}
可以使用,但在更一般的情況下,當可在spring.xml配置指定控制器怎麼辦?以及如何處理請求路徑參數?
您打算如何使用這些信息? Spring Tool Suite會在IDE中爲您提供這些信息。否則,這裏是我寫的一個實用程序:https://github.com/kdgregory/pathfinder(我將在本週晚些時候合併一些更新) – kdgregory
我正在嘗試爲我的web應用程序實現動態菜單系統。我不需要靜態分析源代碼(我的想法已經做得很好),我需要反思性地分析它的運行時間。 –
您如何計劃在XML配置中查找相關控制器?也許你可以在運行時訪問'org.springframework.web.bind.annotation.support.HandlerMethodResolver.getHandlerMethods()'並處理返回的方法。 –