Spring @RequestMapping注解到不同的位置

时间:2019-02-08 20:18:14

标签: rest spring-boot

我正在尝试获得

http://localhost/ - display Welcome page
http://localhost/api/v1/getUser - do the `getUser` controller part
http://localhost/api/v1/addUser - do the `addUser` controller part

所以我为此部分创建了简单的控制器

@RestController
public class restController {

    @GetMapping("/")
    public String restAPI() {

            return "Welcome Page";
    }

    @RequestMapping("/api/v1")
    @PostMapping("/addUser")
    @ResponseBody
    public User addUser(@RequestBody User user) {
         //do the stuff
    }


    @RequestMapping("/api/v1")
    @GetMapping("/getUser")
    @ResponseBody
    public User getUser(@RequestBody User user) {
         //do the stuff
    }

我得到的只是“欢迎页面”,但无法访问任何端点。当我删除了负责restAPI()的部分后,我就可以到达这两个端点。

是否可以混合使用@RequestMapping

1 个答案:

答案 0 :(得分:1)

最好的解决方案是创建两个这样的控制器:

@RestController
@RequestMapping("/")
public class HomeController {

    @GetMapping
    public String restAPI() {

        return "Welcome Page";
    }
}

如果您向http://localhost/发送GET请求,则会显示欢迎页面。

并且:

@RestController
@RequestMapping("/api/v1")
public class UserController {

    @PostMapping
    public User addUser(@RequestBody User user) {
         //do the stuff
    }

    @GetMapping
    public User getUser(@RequestBody User user) {
        //do the stuff
    }
}

通过发送POST或GET到http://localhost/api/v1/并创建一个用户或获得一个。