系列文章目录
文章目录
前言
接上篇详解03,本篇记录服务间的参数传递
一、在服务提供方的UserController添加CRUD
这里正常情况下需要业务实现类去实现方法,去数据库拿数据,为了省点代码,本次使用模拟数据
package com.lzl.controller;
import com.lzl.dto.UserDto;
import com.lzl.utils.JsonResult;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
/**
* --效率,是成功的核心关键--
*
* @Author lzl
* @Date 2023/3/15 15:19
*/
@RestController
@RequestMapping("user-provider")
public class UserController {
@RequestMapping("findAll")
public JsonResult findAll(){
System.out.println("7072");
//模拟数据库中的数据
List<UserDto> userList = Arrays.asList(
new UserDto(1001, "张三"),
new UserDto(1002, "李四"),
new UserDto(1003, "王五")
);
JsonResult jsonResult = JsonResult.ok();
jsonResult.setData(userList);
return jsonResult;
}
//模拟数据库操作
//查询单个
@GetMapping("findById")
public JsonResult findById(@RequestParam("id") Integer id){
UserDto user = new UserDto(id, "jack");
JsonResult jsonResult = JsonResult.ok();
jsonResult.setData(user);
return jsonResult;
}
//删除单个
@DeleteMapping("deleteById/{id}")
public JsonResult deleteById(@PathVariable("id") Integer id){
System.out.println("deleteById:"+id);
return JsonResult.ok();
}
//添加
@PostMapping("addUser")
public JsonResult addUser(@RequestBody UserDto user){
System.out.println("addUser:"+user);
return JsonResult.ok();
}
//修改
@PutMapping("updateUser")
public JsonResult updateUser(@RequestParam Integer id,@RequestParam String name){
System.out.println("updateUser:"+id+"--"+name);
return JsonResult.ok();
}
}
二、在消费方添加对应的CRUD方法
1.在UserService中添加对应方法
package com.lzl.service;
import com.lzl.dto.UserDto;
import com.lzl.utils.JsonResult;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.*;
/**
* --效率,是成功的核心关键--
*
* @Author lzl
* @Date 2023/3/15 16:23
*/
@Service
@FeignClient("provider")//服务名,需要在nacos界面查看服务列表
public interface UserService {
@RequestMapping("/user-provider/findAll")
JsonResult findAll();
//模拟数据库操作
//查询单个
@GetMapping("/user-provider/findById")
JsonResult findById(@RequestParam("id") Integer id);
//删除单个
@DeleteMapping("/user-provider/deleteById/{id}")
JsonResult deleteById(@PathVariable("id") Integer id);
//添加
@PostMapping("/user-provider/addUser")
JsonResult addUser(@RequestBody UserDto user);
//修改
@PutMapping("/user-provider/updateUser")
JsonResult updateUser(@RequestParam Integer id,@RequestParam String name);
}
2.FeignUserController
package com.lzl.controller;
import com.lzl.dto.UserDto;
import com.lzl.service.UserService;
import com.lzl.utils.JsonResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* --效率,是成功的核心关键--
*
* @Author lzl
* @Date 2023/3/15 16:25
*/
@RestController
@RequestMapping("feign")
public class FeignUserController {
@Autowired
private UserService userService;
@RequestMapping("findAll")
public JsonResult findAll(){
return userService.findAll();
}
//模拟数据库操作
//查询单个
@GetMapping("findById")
public JsonResult findById(@RequestParam("id") Integer id){
return userService.findById(id);
}
//删除单个
@DeleteMapping("deleteById/{id}")
public JsonResult deleteById(@PathVariable("id") Integer id){
return userService.deleteById(id);
}
//添加
@PostMapping("addUser")
public JsonResult addUser(UserDto user){
return userService.addUser(user);
}
//修改
@PutMapping("updateUser")
public JsonResult updateUser(@RequestParam Integer id,@RequestParam String name){
return userService.updateUser(id,name);
}
}
三、测试
启动服务提供方和消费方访问对应的方法
成功
总结
本篇记录服务间参数传递,更多内容见下篇