Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring Boot/Kotlin忽略@QueryParam的值字段_Java_Spring_Spring Boot_Kotlin_Jax Rs - Fatal编程技术网

Java Spring Boot/Kotlin忽略@QueryParam的值字段

Java Spring Boot/Kotlin忽略@QueryParam的值字段,java,spring,spring-boot,kotlin,jax-rs,Java,Spring,Spring Boot,Kotlin,Jax Rs,我有一个Spring Boot/Kotlin web应用程序和一个接受查询参数的控制器 以下是我的控制器方法: import org.springframework.web.bind.annotation.GetMapping import org.springframework.web.bind.annotation.ResponseBody import javax.ws.rs.Produces import javax.ws.rs.QueryParam ... @GetMapping("/

我有一个Spring Boot/Kotlin web应用程序和一个接受查询参数的控制器

以下是我的控制器方法:

import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.ResponseBody
import javax.ws.rs.Produces
import javax.ws.rs.QueryParam
...
@GetMapping("/items")
@ResponseBody
@Produces(MediaType.APPLICATION_JSON_VALUE)
fun getItems(@QueryParam("n") count: Int? = null): Collection<MyItem>  {
    return myItemService.list(count)
}
相反,Spring Boot始终使用变量名作为查询参数值:

curl http://localhost:8080/items?count=25

有什么好处?这是Spring Boot中的bug吗,还是Spring团队故意忽略了关于
@QueryParam
应该如何工作的文档,而选择使用变量名而不是注释值?

您应该使用
@RequestParam
,这很有帮助,但仍然让我好奇为什么Spring Boot的创建者错误地实现了JAX-RS规范。Spring MVC才是真正的SpringWeb框架的名称,不是JAX-RS实现。Spring Boot是Spring的引导框架,可以简化应用程序的启动。因此,您使用的是SpringBoot来启动SpringMVC应用程序。“只是一些FYI。”PaulSamsotha当然可以,但如果Spring做得不正确,为什么还要支持JAX-RS注释呢?老实说,感觉像是春天的一个bug,我很好奇是否有任何理由支持它。“但为什么要支持JAX-RS注释呢?”——它没有。您认为SpringMVC支持哪些JAX-RS注释?这两个框架完全不同,完全没有关系。
curl http://localhost:8080/items?count=25