【发布时间】:2019-03-21 15:05:48
【问题描述】:
我已经通过Jackson序列化设置了一个暴露的实体类,这在我的RestController中运行良好。
最近,我尝试创建一个Spring AOP来显示日志,但是它使用了类的toString,由于该类包含双向关系,因此抛出了StackOverflow异常。
Object result = joinPoint.proceed();
if (log.isDebugEnabled()) {
log.debug("Exit: {}.{}() with result = {}",
joinPoint.getSignature().getDeclaringTypeName(),
joinPoint.getSignature().getName(),
result);
}
如何设置toString 方法以使用已配置的Jackson 序列化?
【问题讨论】:
-
您可以在日志中使用
ObjectMapper而不是toString()。 -
修复这些类中的
toString实现。Jackson也会双向下降。当然我们可以使用JsonBackReference注解:Why do i get an stackoverflow error when using jackson even though using @JsonIgnoreProperties和Searching proper way to convert my two-way linkage between objects to JSON format -
注意:如果需要,您的 IDE 能够生成像样的
toString()实现。 -
@ArnaudDenoyelle 谢谢,
ObjectMapper工作得很好。 -
@LunaticJape np。顺便说一句,这是 Jackson 用于序列化的类。
标签: java jackson spring-aop lombok