如何更改@RequestMapping(value = "/board")中路径board,采用新的路径调用。

ha_lydms
后端领域优质创作者
博客专家认证
2020-06-12 03:30:57

如何更改@RequestMapping(value = "/board")中路径board,采用新的路径调用。就是启动的时候,是boad路径,但是启动后,想换成url路径这个怎么做呢?我自己写了一个,还是有问题,值改了,但是没有办法加载更新。

@RestController
@RequestMapping("/test")
public class BoardController {

@RequestMapping(value = "/board", method = {RequestMethod.POST})
public ApiResult board(@RequestBody Map<String, Object> params) throws Exception {

return ApiResult.succ(null);
}
}



// 获取成员方法的class对象
Method board = BoardController.class.getMethod("board", Map.class);
// 获取 Test 上的注解
RequestMapping requestMapping = board.getAnnotation(RequestMapping.class);
// 获取代理处理器
InvocationHandler handler = Proxy.getInvocationHandler(requestMapping);
// 过去私有 memberValues 属性
Field f = handler.getClass().getDeclaredField("memberValues");
f.setAccessible(true);
// 获取实例的属性map
Map<String, Object> memberValues = (Map<String, Object>) f.get(handler);
// 修改属性值
memberValues.put("value", "/url");

...全文
568 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
北京天很蓝 2020-06-19
  • 打赏
  • 举报
回复
引用 2 楼 静心000 的回复:
想写一个通用型的挡板,性能压测时候,调用这个服务。每次有新的需求的话,就改配置文件里面的url和返回值参数就可以了。别的就不需要了。。
可不可以注册到nacos中,然后把你想变动的值设置个变量,放到配置文件中,这样每次只改nacos配置中心的文件就可以了。
冰思雨 2020-06-19
  • 打赏
  • 举报
回复
提示一下,可以使用 @PathVariable 把URL中的路径当做参数进行应答处理。 如果上述方案还满足不了楼主的需求,那么,自定义一个拦截器,拦截所有请求,进行从处理。
菜鸟①个 2020-06-12
  • 打赏
  • 举报
回复
改不了。。。。
  • 打赏
  • 举报
回复
那我建议你使用httpcore或者netty,自己实现http挡板服务。 而springmvc仅仅实现触发挡板服务启动或停止接口。 这样,你自己的挡板服务参数可控。
ha_lydms 2020-06-12
  • 打赏
  • 举报
回复
想写一个通用型的挡板,性能压测时候,调用这个服务。每次有新的需求的话,就改配置文件里面的url和返回值参数就可以了。别的就不需要了。。
  • 打赏
  • 举报
回复
我更想知道的是,你为什么要这么干

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧