자기 참조 관계를 사용하여 dto 클래스(nodeattributesdto)를 직렬화하려고 하면 스프링 부트 애플리케이션에서 stackoverflowerror가 발생합니다. dto 클래스에서 tostring 메소드를 실행하는 동안 오류가 발생합니다.
nodeattributes.java:
으아악nodeattributesdto.java:
으아악사후 매핑 요청 텍스트:
으아악오류:
으아악질문:
환경: 스프링 부트 버전: 2.7.2 자바 버전: 17 데이터베이스: postgresql
내가 시도한 것:
ToString이 Spring Boot에서 마샬링을 제어하지 않는다는 점에 혼란을 겪고 계신 것 같습니다.
System.err.println()을 통해 이 객체를 표준 오류에 기록하려는 경우 toString을 사용합니다.
toString이 기본적으로 데이터의 재귀적 덤프를 시도하는 것처럼 보이지만 이는 올바르지 않습니다. 나는 그것이 단지 기본적인 Java/CS라고 생각합니다.
toString에서는 현재 노드의 데이터를 인쇄한 다음 모든 하위 노드에서 toString(delagate)을 호출할 수 있습니다. 이 작업이 가능해야 합니다. 나는 일반적으로 "트리"의 맨 위에서 시작하기 때문에 역참조(toString에 대한)가 필요하지 않다고 생각합니다.
마샬러는 객체를 검사하고 리플렉션을 사용하여 직렬화된 표현을 구성합니다. 아시다시피 특정 주석을 존중합니다. 예를 들어 @JsonIgnore입니다.
참조: json에서 필드 응답을 무시하는 방법은 무엇입니까?
여기에 좋은 정보가 많이 있습니다: https://www.php.cn/link/ffe4a40fecc90fa1120088e704712fb2
코드 생성 도구(예: jhipster) 외부에서 간단한 웹 서비스를 생성하여 뒤에서 무슨 일이 일어나고 있는지 이해하고 생성을 더 효과적으로 제어하는 데 도움이 될 수도 있습니다.
위 내용은 DTO 직렬화 중 Spring Boot 애플리케이션의 StackOverflowError 문제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!