SpringMVC启动的时候,会把接口信息收集在RequestMappingHandlerMapping中,故可以通过这个类,拿到全部的映射信息,Sample代码段如下:
@Autowired
private ApplicationContext applicationContext;
Set<String> noLoginUrlSet = new HashSet<>();
RequestMappingHandlerMapping mapping = applicationContext.getBean(RequestMappingHandlerMapping.class);
Map<RequestMappingInfo, HandlerMethod> handlerMethods = mapping.getHandlerMethods();// 就是这个
for (RequestMappingInfo rmi : handlerMethods.keySet()) {
HandlerMethod handlerMethod = handlerMethods.get(rmi);
if (handlerMethod.hasMethodAnnotation(NoLogin.class)) {
PatternsRequestCondition prc = rmi.getPatternsCondition();
Set<String> patterns = prc.getPatterns();
noLoginUrlSet.addAll(patterns);
}
}
原文地址:https://www.cnblogs.com/yejg1212/p/11950542.html
时间: 2024-10-08 17:27:29