반응형
RestTemplate
Spring에서 RestAPI로 통신을 할 수 있는 방법은 두가지가 있다.
Spring 3 부터 적용 가능한 Rest Template,
Spring 5 부터 적용 가능한 Web Client
각각의 방법을 차후에 포스트로 작성할 예정
이번에는 Rest Template 객체를 사용한 통신 중에
내가 지정한 클래스에 응답 객체를 매핑하게 되는데...
이 부분에서 오류가 발생했다.
제네릭을 사용한 클래스인 List.class 를 반환 타입으로 주고,
이 객체를 for문을 통해 List의 요소를 하나씩 꺼내와서 기능을 수행했다.
List는 List<FileEntity> 형식으로 되어서 FileEntity.class 로의 매핑이 필요했다.
이 때 사용한 방법으로
com.fasterxml.jackson.databind.ObjectMapper
이 맵퍼 클래스를 사용했다.
코드로 예시를 확인해보자.
// List<FileEntity> fileEntityList 는 RestTemplate 객체를 통한 통신에서 반환된 값
com.fasterxml.jackson.databind.ObjectMapper mapper
= new com.fasterxml.jackson.databind.ObjectMapper();
for(Object obj : fileEntityList){
FileEntity object = mapper.convertValue(obj, FileEntity.class);
}
이 코드를 보면 for each 문을 통해 List 내의 객체를 Object로 매핑해서 가져온 후
FileEntity 로 mapper.convertValue() 메서드를 사용해서 매핑해준다.
이렇게 하지 않으면 FileEntity로 매핑이 되지 않아 사용이 제한된다.
반응형
'WEB > Spring' 카테고리의 다른 글
[Spring Boot] Spring Boot에서 TDD 방법론 (0) | 2023.06.23 |
---|---|
[Spring] 패키지 구조 (0) | 2023.03.29 |
[Spring Boot] Spring boot EC2에 배포하기 (0) | 2022.12.19 |
[Spring] AOP - 구현 (0) | 2022.10.27 |
[Spring] AOP의 기본 개념 (0) | 2022.10.27 |