package com.jackray.iam;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
@SpringBootApplication
public class IamApplication {
public static void main(String[] args) {
ConfigurableApplicationContext run = SpringApplication.run(IamApplication.class, args);
getAllReqestMapping(run);
}
public static void getAllReqestMapping(ConfigurableApplicationContext run){
RequestMappingHandlerMapping bean = run.getBean(RequestMappingHandlerMapping.class);
Map<RequestMappingInfo, HandlerMethod> handlerMethods = bean.getHandlerMethods();
handlerMethods.forEach((k,v)->{
Set<RequestMethod> methods = k.getMethodsCondition().getMethods();
if(CollectionUtils.isEmpty(methods)){
methods = new HashSet<>();
methods.add(RequestMethod.GET);
methods.add(RequestMethod.POST);
}
final Set<String> patterns = k.getPatternsCondition().getPatterns();
for (RequestMethod requestMethod :methods){
for(String pattern:patterns){
System.out.println("method:"+requestMethod+",pattern:"+pattern);
}
}
});
}
}