如何忽略级别@RequestMapping()和直接调用方法级别@RequestMapping()?

时间:2016-09-21 07:11:31

标签: java spring rest spring-mvc request-mapping

如何忽略类级@RequestMapping("/home")并在Spring中直接调用方法级@RequestMapping("/users")

@Controller
@RequestMapping("/home")

@RequestMapping("/method1")
public void method1(){
...
}

@RequestMapping("/users")
public void listUsers(){
...
}

我想调用http://localhost:8080/users来调用listUsers()方法。

3 个答案:

答案 0 :(得分:1)

您无法绕过在类级别定义的请求映射。如果是这样,为什么你想要一个类级映射然后...你可以在方法级请求映射

中做类似的事情
@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(){
    ...
    }

答案 1 :(得分:0)

更改@RequestMapping("/users")

@RequestMapping(method=RequestMethod.GET)

答案 2 :(得分:0)

根据我的理解,您期望的是类级别 RequestMapping。 方法级 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());
}

对于“用户”的路径,你应该在另一个类(控制器)中执行:

@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());
}