接口层
[toc]
注解
1
2
3
4
5
6
// 用于前后端不分离
@Controller
// 用于前后端分离
@RestContoller
// 映射路径
@RequestMapping
架构
contorller
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
@RestController
@RequestMapping("/user")
public class UserController {
// 业务层是最容易变化的
@Autowired
private UserService userService;
@Autowired
private UserMapper userMapper;
// localhost:8888/user/all
@GetMapping("/all")
public List<User> getUsers() {
return userService.getUsers();
}
// 如果不加RequestBody,就无法解析实体对象
@PostMapping
public User insert(@RequestBody User user) {
userService.register(user);
return user;
}
/*
*修改
*/
@PutMapping
public User update(@RequestBody User user) {
userMapper.updateById(user);
return user;
}
// 等于替代了问号的写法
@DeleteMapping("/{id}")
public String delete(@PathVariable("id") Long id) {
userMapper.deleteById(id);
return "删除成功";
}
}
postman进行测试
记住输入方式: 在 body
中, 选中 raw
然后右侧类型选择 json
.
包扫描
只要调用, 就会加载@Config
- 根据包扫描路径去查找注解
- 根据注解生成对象
- 将对象放入到Spring容器(在内存中)里面
Spring 内部类似HashMap, 以键值对进行存取. 默认以类的首字母小写作为Key(准确的说是大驼峰变成了小驼峰, 也就是在使用 @Autowired 之后, 会产生的提示, 就像下文的uerMapper, 就是自动生成的)(也可以指定, 但是没太多必要)
1
2
@Autowired
private UserMapper userMapper;
对象的销毁和创建都由容器管理
依赖注入: DI IOC
json
响应格式
一般是响应代码 + 消息
用以反映当前的状态
200
: ok
403
: 权限不足
404
: 页面不存在
500
: 服务器错误
自定义的错误码最好避开http中的编码
1
@Date
会有get/set/toString, 也就是会覆盖自身写的toString()
json几乎不会和数据库打交道, 一般都是 json <-> java <-> db
, 所以json中的字段要和java的子段对应.
常见错误
添加可以没有id 修改一定要有 404: 找不到(看看写了之后有没有重启服务器) 500: 代码报错(一定要注意@RequestBody) 记住, 每次更改一定要重启服务器(热部署太麻烦)