일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 국비지원교육
- 내일배움카드
- dns forward
- 메가바이트스쿨
- linux domain
- DNS
- PVC
- L2 통신
- 개발자취업부트캠프
- RDB
- k8s
- reclaim
- 127.0.0.53
- ARP
- CoreDNS
- Layer 2
- MegabyteSchool
- PV
- MariaDB
- Spring boot
- 패스트캠퍼스
- linux dns
- ssh tunneling
- systemd-resolved
- L2 통작
- Today
- Total
hoonii2
[SpringBoot] 03. Object Mapper 본문
1. 개요
- View <-> Controller 간에 서로 데이터를 주고받을 때 Json 형태로 사용하는 경우가 많다.
- 응답으로 Json 형태로 직렬화, 요청을 역 직렬화하는데 Object Mapper 인스턴스가 사용된다.
- Spring Boot 는 기본적으로 Object Mapper 가 자동으로 커스텀되어 사용된다.
- 자체적인 Object Mapper 커스텀을 사용하려면 jacson 라이브러리를 사용할 수 있다.
2. 기본적인 Spring Boot 구성
- MapperFeature.DEFAULT_VIEW_INCLUSION 비활성화
- DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES 비활성화
- SerializationFeature.WRITE_DATES_AS_TIMESTAMPS 비활성화
2-1. 사용 예제
String 및 LocalDateTime 개체를 사용하여 Coffee 객체 선언
public class Coffee {
private String name;
private String brand;
private LocalDateTime date;
//getters and setters
}
간단한 Get 요청 REST 컨트롤러 정의
@GetMapping("/coffee")
public Coffee getCoffee(
@RequestParam(required = false) String brand,
@RequestParam(required = false) String name) {
return new Coffee()
.setBrand(brand)
.setDate(FIXED_DATE)
.setName(name);
}
GET http : // lolcahost : 8080 / coffee? brand = Lavazza 를 호출 할 때의 응답
{
"name": null,
"brand": "Lavazza",
"date": "2020-11-16T10:21:35.974"
}
위 처럼 동작하는 Object Mapper 응답을
1) Null 제외
2) 사용자 지정 형식 ( dd - mm - yyyy - HH : MM ) 방식으로 사용을 원함
방식으로 아래처럼 커스텀하여 사용할 수 있다.
{
"brand": "Lavazza",
"date": "04-11-2020 10:34"
}
이 때, 기본적인 Object Mapper 를 사용자 정의하거나 , 아예 재정의 하는 방법이 있다.
참고 자료
https://www.baeldung.com/spring-boot-customize-jackson-objectmapper
'개념 공부 > (개발) 02. Spring Boot' 카테고리의 다른 글
[SpringBoot] Local Spring Boot 에서 SSH Tunneling 을 통한 원격 서버 MariaDB 접근 (0) | 2023.02.10 |
---|---|
[SpringBoot] 05. Lombok (0) | 2023.02.03 |
[SpringBoot] 04. RequestParam vs RequestBody vs ModelAttribute (0) | 2023.01.27 |
[SpringBoot] 02. Properties (0) | 2023.01.13 |
[SpringBoot] 01. Spring Boot 프로젝트 배포 (0) | 2022.12.30 |