public class FoodController { @Autowired private FoodService foodService; @GetMapping public R getAll(){ return new R(true,foodService.list()); } /*1.增..............*/ @PostMapping public R save(@RequestBody Food food){ boolean flag = foodService.save(food); return new R(flag, flag ? "添加成功^_^" : "添加失败-_-!"); } // ^_^! -_-! /*2.删.............*/ @DeleteMapping("{id}") public R delete(@PathVariable Integer id){ Boolean flag = foodService.delete(id); return new R(flag,flag ? "删除成功^_^!" : "删除失败-_-!"); } /*3.查..........*/ @GetMapping("{id}") public R getById(@PathVariable Integer id){ return new R(true,foodService.getById(id)); } /*4.改...........*/ @PutMapping public R update(@RequestBody Food food){ boolean flag = foodService.updateById(food); return new R(flag,flag ? "修改成功^_^!":"修改失败-_-!"); } /*6.分页...........*/ @GetMapping("{current}/{size}") public R getPage(@PathVariable int current,@PathVariable int size,Food food){ IPage<Food> page = foodService.getPage(current, size,food); //如果当前页码值大于了总页码值,那么重新执行查询操作,使用最大页码值作为当前页码值 if (current>page.getPages()) page = foodService.getPage((int) page.getPages(), size,food); return new R(true,page); }分析
时间: 2024-03-25 18:36:05 浏览: 80
Spring注解注入属性
这段代码是一个Java Spring Boot框架中的控制器类,用于处理与食品相关的请求。具体分析如下:
1. 自动注入Service:
```
@Autowired
private FoodService foodService;
```
使用@Autowired注解自动注入FoodService类,用于处理与食品相关的业务逻辑。
2. 获取所有食品:
```
@GetMapping
public R getAll(){
return new R(true,foodService.list());
}
```
使用@GetMapping注解处理GET请求,返回一个R对象,其中包含一个表示请求成功的布尔值和所有食品记录的列表。
3. 添加食品:
```
@PostMapping
public R save(@RequestBody Food food){
boolean flag = foodService.save(food);
return new R(flag, flag ? "添加成功^_^" : "添加失败-_-!");
}
```
使用@PostMapping注解处理POST请求,将请求体中的JSON对象转换为Food对象,再调用FoodService类中的save方法进行添加操作,返回一个R对象,其中包含一个表示请求成功的布尔值和添加操作的结果信息。
4. 删除食品:
```
@DeleteMapping("{id}")
public R delete(@PathVariable Integer id){
Boolean flag = foodService.delete(id);
return new R(flag,flag ? "删除成功^_^!" : "删除失败-_-!");
}
```
使用@DeleteMapping注解处理DELETE请求,将请求中的id参数解析为Integer类型,再调用FoodService类中的delete方法进行删除操作,返回一个R对象,其中包含一个表示请求成功的布尔值和删除操作的结果信息。
5. 获取单个食品:
```
@GetMapping("{id}")
public R getById(@PathVariable Integer id){
return new R(true,foodService.getById(id));
}
```
使用@GetMapping注解处理GET请求,将请求中的id参数解析为Integer类型,再调用FoodService类中的getById方法获取对应id的食品记录,返回一个R对象,其中包含一个表示请求成功的布尔值和获取的食品记录。
6. 修改食品:
```
@PutMapping
public R update(@RequestBody Food food){
boolean flag = foodService.updateById(food);
return new R(flag,flag ? "修改成功^_^!":"修改失败-_-!");
}
```
使用@PutMapping注解处理PUT请求,将请求体中的JSON对象转换为Food对象,再调用FoodService类中的updateById方法进行修改操作,返回一个R对象,其中包含一个表示请求成功的布尔值和修改操作的结果信息。
7. 分页获取食品:
```
@GetMapping("{current}/{size}")
public R getPage(@PathVariable int current,@PathVariable int size,Food food){
IPage<Food> page = foodService.getPage(current, size,food);
//如果当前页码值大于了总页码值,那么重新执行查询操作,使用最大页码值作为当前页码值
if (current>page.getPages()) page = foodService.getPage((int) page.getPages(), size,food);
return new R(true,page);
}
```
使用@GetMapping注解处理GET请求,将请求中的current和size参数解析为int类型,将请求体中的JSON对象转换为Food对象,再调用FoodService类中的getPage方法进行分页查询操作,返回一个R对象,其中包含一个表示请求成功的布尔值和查询结果的IPage对象。如果当前页码值大于了总页码值,那么重新执行查询操作,使用最大页码值作为当前页码值。
阅读全文