You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Micronaut编程式路由:如何配置多参数的Class...parameterTypes

解决Micronaut自定义路由多路径参数问题

直接在GET方法的最后一个参数位置,按控制器方法参数的顺序传入两个String::class.java即可,因为parameterTypes是可变参数,需要匹配目标方法的参数类型列表。

修改后的路由类代码:

@Singleton
class MyRoutes(executionHandleLocator: ExecutionHandleLocator,
               uriNamingStrategy: RouteBuilder.UriNamingStrategy) :
    DefaultRouteBuilder(executionHandleLocator, uriNamingStrategy) {

    @Inject
    fun issuesRoutes(demoController: DemoController) {
        GET("/issues/show/{number}/{another}", demoController, "issue", String::class.java, String::class.java)
    }
}

说明:

  • RouteBuilder.GET方法的parameterTypes参数是可变参数,用于指定目标控制器方法的参数类型,顺序必须和控制器方法的参数顺序完全一致。
  • 你的DemoController.issue方法有两个String类型的路径参数,因此需要依次传入String::class.java(Kotlin中获取Java Class对象的方式)。
  • 这样路由就能正确定位到对应的控制器方法,解决RoutingException报错问题。

内容的提问来源于stack exchange,提问作者Lorena

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 04:42:54