使用SpringBoot获取所有接口的路由

网友投稿 1043 2022-12-09

使用SpringBoot获取所有接口的路由

使用SpringBoot获取所有接口的路由

目录SpringBoot获取所有接口的路由Springboot部分路由生效问题记录

SpringBoot获取所有接口的路由

@Autowired

WebApplicationContext applicationContext;

@RequestMapping(value = "v1/getAllUrl", method = RequestMethod.POST)

public Object getAllUrl() {

RequestMappingHandlerMapping mapping = applicationContext.getBean(RequestMappingHandlerMapping.class);

// 获取url与类和方法的对应信息

Map map = mapping.getHandlerMethods();

// List urlList = new ArrayList<>();

// for (RequestMappingInfo info : map.keySet()) {

// // 获取url的Set集合,一个方法可能对应多个url

// Set patterns = info.getPatternsCondition().getPatterns();

//

// jsaXS for (String url : patterns) {

// urlList.add(url);

// }

// }

List> list = new ArrayList>();

for (Entry m : map.entrySet()) {

Map map1 = new HashMap();

RequestMappingInfo info = m.getKey();

HandlerMethod method = m.getValue();

PatternsRequestCondition p = info.getPatternsCondition();

for (String url : p.getPatterns()) {

map1.put("url", url);

}

map1.put("className", method.getMethod().getDeclaringClass().getName()); // 类名

map1.put("method", method.getMethod().getName()); // 方法名

RequestMethodsRequestCondition methodsCondition = info.getMethodsCondition();

for (RequestMethod requestMethod : methodsCondition.getMethttp://hods()) {

map1.put("type", requestMethod.toString());

}

list.add(map1);

}

Springboot部分路由生效

问题记录

项目新增接口"foo",始终不生效,经排查发现controller层的@RequestMaping(value=“test”)统一加了基础路径"test",我新增的接口注解为@PostMappinp(“test/foo),导致生成的路由为"test/test/foo”, 调用地址为"test/foo",所以报了404。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:关于springboot中nacos动态路由的配置
下一篇:JVM中对象的创建与OOP
相关文章

 发表评论

暂时没有评论,来抢沙发吧~