gpt4 book ai didi

java - Spring路由是如何工作的?有没有办法访问它?

转载 作者:行者123 更新时间:2023-11-30 05:49:28 24 4
gpt4 key购买 nike

我正在 Spring 中构建一个休息 API。有没有办法利用路由进行查找?

有 table 吗?给定一个完整的路由 /someobject/a 和一个 ACCEPT 标题为“whatever”,有没有办法告诉我它将路由到哪个 Controller 和方法,或者做我需要自己构建那张 map 吗?

我以不同的方式问了一个类似的问题,并被建议使用我在 @Before 中尝试过的 Spring AOP,但在我需要的某些情况下它不起作用。具体来说,如果方法参数上有验证注释并且验证失败,则它不会到达 join 点。也没有进入 @AfterThrowing

最佳答案

对于那些试图在未来解决这个问题的人来说,是的,这确实是可能的。路由作为 bean 公开:

@Autowired
private RequestMappingHandlerMapping requestMappingHandlerMapping;

您需要 HttpServletRequest 对象,如果您还没有,可以从这里获取:

HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest();

然后你只需调用:

HandlerMethod handlerMethod = (HandlerMethod)requestMappingHandlerMapping.getHandler(request).getHandler();

我的具体需要是获取 PreAuthorize 属性,但您可以使用 HandlerMethod 对象执行任何操作:

PreAuthorize preauthorize = handlerMethod.getMethodAnnotation(PreAuthorize.class);

关于java - Spring路由是如何工作的?有没有办法访问它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59012603/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com