如何忽略级别@RequestMapping() 和直接调用方法级别@RequestMapping()?
How to ignore level @RequestMapping() and direct call method level @RequestMapping()?
如何忽略class级别@RequestMapping("/home")
,直接调用Spring中@RequestMapping("/users")
级别的方法?
@Controller
@RequestMapping("/home")
@RequestMapping("/method1")
public void method1(){
...
}
@RequestMapping("/users")
public void listUsers(){
...
}
我想调用 http://localhost:8080/users
来调用 listUsers()
方法。
您无法绕过在 class 级别定义的请求映射。因为如果是这样,为什么你想要一个 class 级别映射那么......你可以在方法级别请求映射
中做这样的事情
@Controller
@RequestMapping("/home/method1")
public void method1(){
...
}
@RequestMapping("/users")
public void listUsers(){
...
}
那样的话你可以试试这个...
@Controller
@RequestMapping({ "/home", "/users" })
@RequestMapping("/method1")
public void method1(){
...
}
@RequestMapping(method="RequestMethod.GET")
public void listUsers(){
...
}
将 @RequestMapping("/users")
更改为 @RequestMapping(method=RequestMethod.GET)
据我了解,您期望的是 class 级别的 RequestMapping。 method-level RequestMapping应该在class-level的路径下。
我给你举几个例子:
@RestController
@RequestMapping("/home")
public class HomeController {
// Full path of following endpoint: /home/parents.
@RequestMapping(value = "/parents", method = RequestMethod.GET)
public ResponseEntity<List<People>> getParents() {
return ResponseEntity.ok(methodToGetParents());
}
对于 "users" 的路径,你应该在另一个 class (控制器)中进行:
@RestController
@RequestMapping("/users")
public class UsersController {
// Full path of following endpoint: /users.
@RequestMapping(method = RequestMethod.GET)
public ResponseEntity<List<People>> getUsers() {
return ResponseEntity.ok(methodToGetUsers());
}
如何忽略class级别@RequestMapping("/home")
,直接调用Spring中@RequestMapping("/users")
级别的方法?
@Controller
@RequestMapping("/home")
@RequestMapping("/method1")
public void method1(){
...
}
@RequestMapping("/users")
public void listUsers(){
...
}
我想调用 http://localhost:8080/users
来调用 listUsers()
方法。
您无法绕过在 class 级别定义的请求映射。因为如果是这样,为什么你想要一个 class 级别映射那么......你可以在方法级别请求映射
中做这样的事情@Controller
@RequestMapping("/home/method1")
public void method1(){
...
}
@RequestMapping("/users")
public void listUsers(){
...
}
那样的话你可以试试这个...
@Controller
@RequestMapping({ "/home", "/users" })
@RequestMapping("/method1")
public void method1(){
...
}
@RequestMapping(method="RequestMethod.GET")
public void listUsers(){
...
}
将 @RequestMapping("/users")
更改为 @RequestMapping(method=RequestMethod.GET)
据我了解,您期望的是 class 级别的 RequestMapping。 method-level RequestMapping应该在class-level的路径下。
我给你举几个例子:
@RestController
@RequestMapping("/home")
public class HomeController {
// Full path of following endpoint: /home/parents.
@RequestMapping(value = "/parents", method = RequestMethod.GET)
public ResponseEntity<List<People>> getParents() {
return ResponseEntity.ok(methodToGetParents());
}
对于 "users" 的路径,你应该在另一个 class (控制器)中进行:
@RestController
@RequestMapping("/users")
public class UsersController {
// Full path of following endpoint: /users.
@RequestMapping(method = RequestMethod.GET)
public ResponseEntity<List<People>> getUsers() {
return ResponseEntity.ok(methodToGetUsers());
}