Spring Boot 覆盖通配符 RequestMapping

问题描述

我正在构建一个 URL Shorter 应用程序(如 Bitly)。它是一个使用 Spring Boot 和 ReactJS 的 SPA。所有网络内容均由 index.html 提供。所有其他路由都假定为 shortLink 重定向请求,这些请求应触发 clickShortUrl() 函数以获取相应的 originalLink 并将用户重定向到该网址。

因此,我希望以下路由重定向到 index.html

@GetMapping(value = {"/","/home","/dashboard"})
    public String redirect() {
        return "forward:/index.html";
    }

以及触发通配符功能的所有其他/未知路由:

@RequestMapping(value = "/{shortUrl}",method = RequestMethod.GET)
public Object clickShortUrl(@PathVariable("shortUrl") String shortUrl,@RequestBody ClickDTO request) { 
    // internalLogicHere 
};

个别地,映射和函数正在起作用。但综合起来,/{shortUrl} 通配符路由始终优先。我已经在 google 周围寻找覆盖这种行为的方法。似乎有几种可能,但我所有的尝试都失败了。

我读了几篇类似 this 的帖子,建议扩展 WebMvcConfigurerAdapter 并覆盖 addViewControllers(ViewControllerRegistry registry) 以定义特定路由的视图控制器。我真的不明白这一点。这是正确的道路吗?如果是这样,有人可以帮助我了解 ViewControllerRegistry 的全部内容并让我走上正确的道路吗?

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)