标签: get-mapping

用于多个映射的 Spring Boot @GetMapping 规则

我在控制器中有 3 种不同的方法来获取请求。

- 第一个通过 id 和路径变量获取用户:

@GetMapping(path="/{id}")
public ResponseEntity<UserInfoDTO> getUserById(@PathVariable Long id)
Run Code Online (Sandbox Code Playgroud)

第二个根据username参数获取用户:

public ResponseEntity<UserInfoDTO> getUserByUsername(@RequestParam String username)
Run Code Online (Sandbox Code Playgroud)

最后还有另一个让所有用户都获得的

public ResponseEntity<List<UserInfoDTO>> getAllUsers()
Run Code Online (Sandbox Code Playgroud)

@GetMapping第二种和第三种方法应该是什么?

例如@GetMapping对于所有用户和@GetMapping(path="/")按用户名的用户?

管他呢...

谢谢。

java request spring-boot get-mapping

2
推荐指数
1
解决办法
1万
查看次数

Spring boot中的GetMapping排除特定路径变量匹配

我有一个带有以下 GetMapping 的控制器

@GetMapping(value = "/dawson/v1/{dataType}", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseEntity<String> respondWithData(@PathVariable String dataType, @RequestParam(name = "minDate") String min_date, @RequestParam(name = "maxDate") String max_date, @RequestParam(USERID) String user_id, @RequestHeader(value = "Authorization") String authorizationHeader) {
Run Code Online (Sandbox Code Playgroud)

其中 dataType 可以是 String、Map、Object 或 Calendar 之一。我创建了另一个 GetMapping 如下

@GetMapping(value = "/dawson/v1/signInReq")
public ResponseEntity<String> mySignInRequest(@RequestBody Map<String, String> paramMap, HttpServletRequest request, HttpServletResponse response) {
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试访问 /dawson/v1/signInReq 时,它仍然会命中第一个映射,而不是 signInReq 映射。有没有办法排除signInReq作为{dataType}的匹配项?

我确实有在上面的第一个映射中列出所有可能的数据类型的解决方法,但想知道是否有更好的方法来处理它(也许是正则表达式?)。

java spring-boot get-mapping

1
推荐指数
1
解决办法
6474
查看次数

标签 统计

get-mapping ×2

java ×2

spring-boot ×2

request ×1