一、Maven添加OpenFeign依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
二、生产者代码
生产者Controller层代码:
@RestController
@RequestMapping("/user")
public class UserController{
@Autowired
private UserService userService
@RequestMapping("/insertUser")
public void insertUser(@RequestBody User user){
userService.insert(user);
}
@RequestMapping("/getUserById")
public User getUserById(@RequestParam String username){
return userService.getUserById(username);
}
}
三、消费者代码
消费者Service层代码:
@Service
@FeignClient("endservice")
public interface UserService{
@RequestMapping("/user/insertUser")
public void insertUser(@RequestBody User user);
@RequestMapping("/user/getUserById")
public User getUserById(@RequestParam String username);
}
消费者Controller层代码:
@RestController
@RequestMapping("/user")
public class UserController{
@Autowired
private UserService userService
@RequestMapping("/insertUser")
public void insertUser(@RequestBody User user){
userService.insert(user);
}
@RequestMapping("/getUserById")
public User getUserById(@RequestParam String username){
username=username==null?"":username;
return userService.getUserById(username);
}
}
注:
1、消费者Service层的方法参数和注解必须和生产者Controller层的方法参数和注解的一致否则会出错。
2、@RequestParam和@RequestBoby的使用
@RequestParam只能接收和传递String,int,float等常用数据类型的参数值,不能接收和传递对象类型(class)的数据
@RequestBoby可以接收和传递对象类型的数据
3、400错误的原因
从消费者Controller层传递到生产者Controller层的参数为null,将参数设为默认值