1. Maven agrega dependencia openFeign
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
Segundo, el código del productor.
Código de capa de controlador de productor:
@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);
}
}
Tres, código de consumidor
Código de capa de servicio al consumidor:
@Service
@FeignClient("endservice")
public interface UserService{
@RequestMapping("/user/insertUser")
public void insertUser(@RequestBody User user);
@RequestMapping("/user/getUserById")
public User getUserById(@RequestParam String username);
}
Código de capa de controlador de consumidor:
@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);
}
}
Nota:
1. Los parámetros del método y las anotaciones de la capa de Servicio al consumidor deben ser los mismos que los de la capa del Controlador productor o se producirán errores.
2. Uso de @RequestParam y @RequestBoby
@RequestParam solo puede recibir y pasar valores de parámetros de tipos de datos de uso común, como String, int, float, etc. No puede recibir ni pasar datos de tipo de objeto (clase)
@RequestBoby puede recibir y pasar datos de tipo de objeto
3. La causa del error 400
El parámetro pasado de la capa del Controlador del consumidor a la capa del Controlador del productor es nulo; establezca el parámetro en el valor predeterminado