본문 바로가기
개발/SpringBoot

SpringBoot RestTemplate ResponseType에 Generic 설정

by 궁즉변 변즉통 통즉구 2022. 2. 21.
반응형

RestTemplate사용 시 Response에 매핑하는 객체에 Generic<T>를 설정하는 경우가 있다. 아래와 같이 공통 Response객체에 "data"필드의 객체를 원하는 객체로 설정을 하는 경우이다

public class ResponseVo<T> {

    private RltVo rlt;
    private List<T> data;
    ...
}

 

일단 아래와 같이 시도를 해보면 에러가 발생하는 등으로 데이터를 제대로 받아올 수 없다

// 실패
ResponseVo<MemberVo> response
    = restTemplate.exchange("myurl", HttpMethod.POST, entity, ResponseVo.class).getBody();

 

RestTemplate의 exchange() 메소드를 보면 ParameterizedTypeReference을 파라메타로 선언할 수 있는데 이를 활용하면 된다.

ResponseVo<MemberVo> response
    = restTemplate.exchange("myurl", HttpMethod.POST, entity, new ParameterizedTypeReference<ResponseVo<MemberVo>>(){}).getBody();

 

반응형

댓글