遇到的问题
想要保存用户信息,在消费端将用户信息传递给服务端时,存入的数据全部都为null
消费端代码
@RequestMapping("/save")
public String saveUser(){
User user=new User();
user.setId(20L);
user.setUserName("abc");
user.setAge(18);
user.setName("c");
String url="http://192.168.0.14:80/user/save";
String s = restTemplate.postForObject(url,user, String.class);
return s;
}
服务端代码
@RequestMapping("/save")
public String saveUser(User user){
userService.saveUser(user);
return "保存成功";
}
运行结果
但是数据库结果的用户信息全部为null
可以看此帖的详细解释
https://blog.csdn.net/justry_deng/article/details/80972817
问题原因:
1.restTemplate.postForObject() 以此种方式调用服务发送的是post请求,此时user相关数据封装在请求体中
2.服务端接收参数时没有添加**@RequestBody** 注解代表了,从请求行中获取数据,而请求行中并无用户数据,所以数据库中除了自增长的id有值,其他数据全部为null
解决方式
在服务端的方法上使用注解**@RequestBody**,从请求体中获取数据,封装到user对象中
重新保存 数据可以正常显示