由于Spring has deprecated DefaultAnnotationHandlerMapping
并已由RequestMappingHandlerMapping
取代,所以我遇到了如下代码的情况:
@Autowired
private DefaultAnnotationHandlerMapping handlerMapping;
//in an API that lists handler mapping
Map<String, Object> handlerMap = handlerMapping.getHandlerMap();
现在,RequestMappingHandlerMapping
不提供此方法。我可以使用哪个函数来获取所需的处理程序映射?
回答时应考虑的事项:
我一直在看的东西:
我尝试遍历DefaultAnnotationHandlerMapping
和RequestMappingHandlerMapping
的父类。我得出的结论是AbstractUrlHandlerMapping
是包含getHandlerMap()
并扩展AbstractHandlerMapping
的函数。
RequestMappingHandlerMapping
具有AbstractHandlerMethodMapping<T>
作为超级父级并扩展了AbstractHandlerMapping
,但我找不到类似于getHandlerMap()
答案 0 :(得分:0)
由于AbstractUrlHandlerMapping
是包含该函数的类,而getHandlerMap是它的javadoc的类
将注册的处理程序作为不可修改的Map返回,将注册的路径作为键,并将处理程序对象(如果是lazy-init处理程序,则为处理程序bean名称)作为值。
由于这是内部Spring映射,所以可以使用扩展AbstractUrlHandlerMapping
的任何类来检索映射。具体来说,我使用了BeanNameUrlHandlerMapping
。