# 项目结构与配置
目录:
<img src="https://z3.ax1x.com/2021/06/08/2BLrrT.png" width="300px">
配置文件 application.yml:
server: | |
port: 8080 | |
context-path: / |
# Controller 的使用
# @RestController 和 @RequestMapping 注解
@Controller 需要配合 @ResponseBody 使用,Spring4 之后新增注解 @RestController 相当于前边两个合起来。
注解 | 功能 |
---|---|
@RestController | 处理 Http 请求 |
@RequestMapping | 配置 url 映射 |
@GetMapping | 同上,方法指定 GET |
POST..blabla.. | 同上 blabla... |
实例:
HelloChinoController.java
package com.example.demo1; | |
import org.springframework.web.bind.annotation.RequestMapping; | |
import org.springframework.web.bind.annotation.RequestMethod; | |
import org.springframework.web.bind.annotation.RestController; | |
// 可以直接 import org.springframework.web.bind.annotation.*; | |
//@RestController = @Controller + @ResponseBody | |
@RestController | |
//RequestMapping 配置整个类的 url | |
@RequestMapping("/hello") | |
public class HelloChinoController { | |
/* | |
单独配置每个方法的 url,{} 可包含多个 | |
不写 method 则支持全部方法(然而并不规范的样子 qwq | |
支持多个 url,这里通过 "/hello/chino" 或 "/hello/chinochann" 访问 | |
*/ | |
@RequestMapping(value = {"/chino", "/chinochann"}, method = RequestMethod.GET) | |
public String hello() { | |
return "Hello Chino!"; | |
} | |
} |
# 请求参数的获取
注解 | 功能 |
---|---|
@PathVariable | 从 url 获取参数 |
@RequestParam | 从 body 获取参数 |
从 url 获取参数:
@RequestMapping(value = "/{id}chino/{id2}", method = RequestMethod.GET) | |
public String hello(@PathVariable("id") Integer id, @PathVariable("id2") Integer id2) { | |
return "Hello Chino! " + id + " " + id2; | |
} |
通过 http://localhost:8080/hello/233chino/466 访问,返回 “Hello Chino! 233 466”
GET 参数获取:
@GetMapping("/chino") | |
public String hello(@RequestParam(required = false, defaultValue = "1") Integer id) { | |
//id 只能叫 id | |
return "Hello Chino! " + id; | |
} | |
// 或者这样之类的,,反正到时候查手册啦,, | |
@GetMapping("/chino") | |
public String hello(@RequestParam(value = "id", required = false, defaultValue = "1") Integer myId) { | |
return "Hello Chino! " + myId; | |
} |
通过 http://localhost:8080/hello/chino 访问,返回 “Hello Chino! 1”,通过 http://localhost:8080/hello/chino/?id=233 访问,返回 “Hello Chino! 233”
随便粘个 POST 的实例:
@PostMapping("/pay") | |
public AjaxResult<PayResult> pay(@RequestBody PayParam param, HttpServletRequest request) { | |
Long userId = UserUtils.getUserId(); | |
String ip = IPUtils.getRequestClientRealIP(request); | |
PayResult payResult = orderService.pay(param, ip, userId); | |
return AjaxResult.SUCCESS(payResult); | |
} |