如题所示
@JsonIgnore注解:在json序列化时将对象中的一些属性忽略掉,标记在属性或者方法上,返回的json数据不包含该属性。
项目采用微服务模式,需要通过Feign调用其他服务,使用Page(自己公司底层封装)传参,字段queryCondition,具体如下所示,但参数始终未能传递到目标服务中,在排查了其他问题之后,查看Page底层代码,发现在Page内部分字段上有@JsonIgnore注解,即找到问题。

/** 查询条件*/
@JsonIgnore
private Map<String,Object> queryCondition = new HashMap<String,Object>();

使用该注解在大部分情况下都是为了使该字段不返回,通过Feign调用的时候即需要序列化,故而该属性被忽略置空。
注:为了找到问题所在,打印了两个服务中的线程名,发现通过Feign调用接口会在目标服务内产生新的线程,和原请求并非同一个线程。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐