봄 웹 응용 프로그램 구성을 사용하여 POJO에 Deserialise 쿼리 매개 변수는 잭슨 ObjectMapper
이스프링 MVC : 잭슨 objectMapper
objectMapper.disable(ADJUST_DATES_TO_CONTEXT_TIME_ZONE)
objectMapper.registerModule(new JavaTimeModule())
JavaTimeModule
같은 구성이 포함되어 ZonedDateTime
의 deserialisation을 처리하기 위해 추가됩니다. ZonedDateTime
을 포함하는 POJO를 처리하는 두 개의 끝점이 있습니다. POJO와는 다음과 같이이다 : 엔드 포인트와
class MyRequest {
ZonedDateTime from
ZonedDateTime to
}
와 컨트롤러는 다음과 같습니다
내가 몸{"from": "2017-03-15T00:00:00Z", "to": "2017-03-16T00:00:00Z"}
응답은 200이고 deserialisation이 성공적으로 POST/POJO를 보내
@Slf4j
@RestController
class MyController {
@GetMapping('/pojo')
void getPojo(MyRequest myRequest) {
log.debug("Request received: $myRequest")
}
@PostMapping('/pojo')
void postPojo(@RequestBody MyRequest myRequest) {
log.debug("Request received: $myRequest")
}
}
. 내가
가 400 잘못된 요청이 GET 요청에 있기 때문에, 오류Failed to convert from type [java.lang.String] to type [java.time.ZonedDateTime] for value '2017-03-15T00:00:00Z'
이 메이크업 감각과 수신
GET /pojo?from=2017-03-15T00:00:00Z&to=2017-03-15T00:00:00Z
, 내가 JSON 때문에 JSON 객체를 전송하고 있지 않다 보내
는 달리, 매퍼가 호출되지 않습니다.
GET 요청에도 objectMapper
을 사용할 수 있습니까? 그렇다면 쿼리 매개 변수가 POJO 개체로 변환됩니까? 그런데
, 객체 해결할 수있는 문제에지도 나는 다음과 같은 GET 엔드 포인트에 대한 직렬화 복원 할 수 있다는 것을 알고,하지만 난 쿼리 매개 변수를 objectMapper
를 주입하고 변환 GET 및 POST 엔드 포인트
@DateTimeFormat(iso = ISO.DATE_TIME)
ZonedDateTime from
@DateTimeFormat(iso = ISO.DATE_TIME)
ZonedDateTime to