Micronaut 控制器中的默认处理程序

Default handler in Micronaut controller

我有一个 micronaut 控制器

...
@Controller("/**")
public class MainController {

  @Get(value="/path1")
  public HttpResponse handlePath1Get(HttpRequest<?> request) {

    .. do something ..
  }

  @Get(value="/path1/action1")
  public HttpResponse handlePath1Action1(HttpRequest<?> request) {

    .. do something else ..
  }
}

对这些特定端点的调用工作正常。

但是现在我有一个要求,所有路径(除了上面的特定路径)都需要委托给一个处理程序。有什么办法可以实现吗?

我目前正在使用 Micronaut v1.1

您可以定义一个包含保留字符的变量

  @Get(value="/{+path}")
  public HttpResponse handleAnyUri(String path) {

    .. do something else ..
  }

对于 /hello/world 的请求,path 的值将是 hello/world