Spring 请求映射 - 在唯一端点映射所有 GET 请求
Spring Request Mapping - Mapping all GET requests in a unique endpoint
正如标题所说,我需要一种方法来将所有 GET 请求映射到一个唯一的端点。
例如,如果我像这样发出 n 个不同的请求(为每个请求附加一个斜线):
http://localhost:8080/test
http://localhost:8080/test/2
http://localhost:8080/test/2/3
http://localhost:8080/test/2/3/4
...
请求应该被同一个端点拦截和详细说明。
目前我通过声明以下 @RequestMapping
解决了问题:
@RequestMapping(method = RequestMethod.GET, value = {"*", "*/*", "*/*/*", "*/*/*/*", "*/*/*/*/*", "*/*/*/*/*/*"})
public ResponseEntity<?> get(RequestEntity<?> request) throws IOException {
// code
}
并且有效。
但我不喜欢这种语法,我认为它很乱,而且查看代码时这里的范围有点难以理解。在那之后,理论上,我可以接受 /
的 "infinite number" 所以我应该在 @RequestMapping
的值中声明大量映射(使用 */
序列组成) .
有人知道更清洁的方法吗?
提前致谢。
也许:
@RequestMapping(method = RequestMethod.GET, value = {"/**"})
正如标题所说,我需要一种方法来将所有 GET 请求映射到一个唯一的端点。
例如,如果我像这样发出 n 个不同的请求(为每个请求附加一个斜线):
http://localhost:8080/test
http://localhost:8080/test/2
http://localhost:8080/test/2/3
http://localhost:8080/test/2/3/4
...
请求应该被同一个端点拦截和详细说明。
目前我通过声明以下 @RequestMapping
解决了问题:
@RequestMapping(method = RequestMethod.GET, value = {"*", "*/*", "*/*/*", "*/*/*/*", "*/*/*/*/*", "*/*/*/*/*/*"})
public ResponseEntity<?> get(RequestEntity<?> request) throws IOException {
// code
}
并且有效。
但我不喜欢这种语法,我认为它很乱,而且查看代码时这里的范围有点难以理解。在那之后,理论上,我可以接受 /
的 "infinite number" 所以我应该在 @RequestMapping
的值中声明大量映射(使用 */
序列组成) .
有人知道更清洁的方法吗?
提前致谢。
也许:
@RequestMapping(method = RequestMethod.GET, value = {"/**"})