🤔 서론
프로젝트를 진행하다 보면 objectMapper를 새로 만들어서 할 일이 종종 생긴다.
이때 새로 만들게 되면 Spring에서 기본적으로 제공해주는 옵션들을 찾아 동일하게
적용한 후에 내가 원하는 옵션들을 추가하고 싶을 수 있다.
어떻게 쉽게 만들 수 있을까?
😏 본론
스프링에서 기본적으로 설정하는 properties와 기본적으로 넣어주는 모듈들이다.
이런 걸 할 때마다 일일이 찾아 설정해 주고, 반복적으로 하는 건 매우 귀찮은 일이다.
스프링에서 기본으로 제공하는 ObjectMapper를 쉽게 만드는 법은 간단하다.
fun objectMapper(): ObjectMapper =
Jackson2ObjectMapperBuilder().build()
위처럼 Jackson2ObjectMapperBuilder 를 사용해서 build를 하면 된다.
간단하게 build()를 보면 configure(mapper); 가 있는데 해당 부분에서 위에서 설명했던 기본적인 설정들을 진행해 준다.
해당 빌더를 사용하면 쉽게 만들 수 있으니 앞으로는 설정을 실수로 누락하는 일을 줄일 수 있다.
아예 새롭게 만들고 싶다면?
new ObjectMapper()로 만들면 MapperFeature를 받는 부분들이 모두 @Deprecated가 되어있다.
그 외에도 많은 부분이 deprecated가 되었는데 objectMapper 측에서
빌더패턴을 통해 불변으로 만드는 방식으로 넘어가고 싶어 하는 것 같다.
3.0부터는 @Deprecated된 메서드들은 지워질 거라고 설명하기 때문에 언제 3.0이 릴리즈 될진 몰라도
미리 차근차근 변경해두는 게 좋을 것 같다.
그럼 어떻게 바꾸냐?
fun objectMapper(): ObjectMapper =
JsonMapper.builder().disable(MapperFeature.DEFAULT_VIEW_INCLUSION).build()
JsonMapper.builder()로 변경할 수 있다.
😳 결론
아예 새로운 ObjectMapper를 만들고 싶을 땐 당연히 새로 만들면 됩니다!
이 내용은, Spring에서 정의한 ObjectMapper에서 속성을 추가 및 변경을 하고 싶을 때입니다.
피드백은 언제나 환영입니다!