Spring @RequestMapping注释到不同的位置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring @RequestMapping注释到不同的位置相关的知识,希望对你有一定的参考价值。
我想要得到类似的东西
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
?
答案
最好的解决方案是创建两个这样的控制器:
@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
}
}
通过向http://localhost/api/v1/发送POST或GET并创建用户或获取用户。
以上是关于Spring @RequestMapping注释到不同的位置的主要内容,如果未能解决你的问题,请参考以下文章
Spring Security + MVC:相同的@RequestMapping,不同的@Secured