因为前端一般会返回带有下划线的数据,而java的命名规范一般是以驼峰的形式,所以这就造成了用javabean来接收或者返回json格式的数据时会有命名方式的冲突,所以我们常常需要对格式进行转换或者是兼容
实现的方式有几种
1.java里面也使用下下划线的方式接收和响应,但是不推荐这样,因为虽然满足了接口需求,但是不符合java里面的命名规范;
2.java里面使用驼峰,接收到参数后手动转换,这样做太麻烦.
3.java里面使用驼峰,自己写一个工具方法,或者通过优秀的第三方工具来帮助我们进行统一转换
具体可以参考这位大大的博客,里面写的很详细
文中讲到我们可以在类上添加@JsonNaming注解的方式来使我们的javabean类的驼峰字段在返回时转换为下划线的方式,这样就满足了我们转换的需求,而且这个是jackson中自带的注解,所以当我们使用springboot进行开发时使用起来很方便
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
但是文中提到我们接收参数时需要自定义注解,当然在我们定义完成之后这也不失为一种好方法,但是我总觉得还是有些太麻烦,于是我就想,既然 @JsonNaming 能够在返回值时进行转换,那么在接收值时就不能也转换为下划线再和参数进行匹配吗,于是经过试验后我发现这种做法是可行的,人家果然也是帮我们封装好了,也就是说我们如果要实现javabean接收和转换带下划线的参数时,通通只需要使用这个注解即可
但是我本身实力也不是很强,所以也没办法指出这样做的好坏,是否会很消耗性能啊之类的,网上很多也只是对这个注解进行了介绍,并没有提到这种使用场景下的一些优劣之处的对比,但是既然人家能被spring看上并整合,应该问题也不大,我们作为搬砖的只管用就好