-
Notifications
You must be signed in to change notification settings - Fork 1
요청,응답 날짜형식 지정
kimhanui edited this page Nov 17, 2020
·
1 revision
- Get요청시에는 @DateTimeFormat
- Post 요청, ResponseBody에서는 @JsonFormat
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm", timezone = "Asiz/Seoul") private LocalDateTime modifiedDate;
- Post 요청시에도 @DateTimeFormat이 적용될 수 있으나, @JsonFormat이 지정되어 있지 않을때만 가능하다.
- Spring Boot 2.0에서는 JSR 310이 기본 의존성에 포함되어있다.
spring에서 날짜,시간 형식(Local, LocalDateTime)을 지정하는 어노테이션은 두가지가 있음.
@JsonFormat, @DateTimeFormat 각각이 어떤 상황에 적용되는지 + 우선순위 테스트 해보신 것.
- spring boot 2.0부터는기본 의존성이 되었다고 함(jsr310)
- GET으로 받기 1-1. ModelAttribute로 DTO 객체 받기
-
@DateTimeFormat통과 1-2. RequestParam로 필드별로 받기 -
@DateTimeFormat통과
- POST로 받기(RequestBody)
@PostMapping("/post")
public String post(@RequestBody JsonModel jsonModel) {
log.info("get 요청 데이터 = {}", jsonModel);
return "post 성공";
}
-
@DateTimeFormat,@JsonFormat통과 - 우선순위
- 두 어노테이션 모두가 있으면 @JsonFormat이 진행된다
- @JsonFormat이 틀리면 @DateTimeFormat이 맞더라도 직렬화는 실패한다
- 단, @DateTimeFormat이 있다면 @DateTimeFormat의 포맷으로 직렬화가 진행된다.
- ResponseBody로 JSON값 리턴하기
@GetMapping("/response")
public ResponseModel responseModel() {
return new ResponseModel("gumago", LocalDateTime.of(2018,12,15,10,0,0));
}
-
@JsonFormat통과