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
相关产品推荐
相关产品推荐

