springmvc中RESTful的写法

本文介绍了@RequestMapping、@ResponseBody及@PathVariable等注解的作用与用法。@RequestMapping用于定义URL路径,@ResponseBody则指定响应类型(如JSON),而@PathVariable则关联URL中的变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


@RequestMapping这个注解中配置的是url路径,后面传递的参数需要用大括号括起来。

@ResponseBody这个注解是配置返回的数据类型的,根据需求决定是否添加,上面配置的是返回json数据,还做了其他配置,这里就不列举了。

@PathVariable这个注解对应的是url中的那个参数。

### Spring MVC 注解详解 #### @Controller 此注解用于标记一个类作为Spring MVC的控制器组件。当使用`@Controller`标注某个类时,表明该类负责接收HTTP请求并返回相应的模型视图对象给前端页面显示[^1]。 ```java @Controller public class HelloController { // 方法定义... } ``` #### @RequestMapping 这是一个核心路由映射注解,可以应用于类级别或方法级别上。在类级应用时指定基础路径;而在方法层面上,则用来精确匹配URL模式到具体处理器函数。 ```java @RequestMapping("/hello") public String hello(Model model){ model.addAttribute("message", "Hello, world!"); return "index"; } ``` #### @GetMapping 和 @PostMapping 这两个都是@RequestMapping的快捷形式,分别对应GET和POST类型的HTTP请求。它们使代码更具有可读性和语义化。 ```java @GetMapping("/greeting") public String greeting(@RequestParam(value="name", required=false, defaultValue="World") String name, Model model) { model.addAttribute("name", name); return "greeting"; } @PostMapping("/submitForm") public String submitForm(@ModelAttribute User user){ // 处理表单提交的数据 return "resultPage"; } ``` #### @ResponseBody 如果希望直接写出响应体而不是跳转至视图解析器所配置好的JSP/HTML文件的话就可以利用这个注解。通常会配合JSON序列化库一起工作以便于API接口开发。 ```java @ResponseBody @RequestMapping("/api/data") public Map<String,Object> getData(){ Map<String,Object> map=new HashMap<>(); map.put("key","value"); return map; } ``` #### @RestController 它是`@Controller`与`@ResponseBody`组合而成的新版简化写法,适用于RESTful风格的服务端点实现,在此类中标记的方法默认都会加上`@ResponseBody`效果。 ```java @RestController @RequestMapping("/rest/api/v1/") public class RestApiController { @GetMapping("users/{id}") public ResponseEntity<User> getUserById(@PathVariable Long id){ // 获取用户信息逻辑 return new ResponseEntity<>(new User(), HttpStatus.OK); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值