如何在toString方法上使用Jackson序列化?

时间:2019-03-21 15:05:49

标签: java jackson spring-aop lombok

我已经通过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序列化?

1 个答案:

答案 0 :(得分:0)

我使用ObjectMapper解决了我的问题。

Object result = joinPoint.proceed();
if (log.isDebugEnabled()) {
    log.debug("Exit: {}.{}() with result = {}", 
        joinPoint.getSignature().getDeclaringTypeName(),
        joinPoint.getSignature().getName(), 
        new ObjectMapper().writeValueAsString(result));
}