그럴 경우 하나의 방법으로 WebMvcConfigurerAdapter 을 상속받은 클래스를 만들어 configureMessageConverters 을 Override 하는 방법이 있습니다.
JSON 의 예를 들어보면, Spring 에서 JSON 은 Jackson 을 기본으로 합니다. 그럼 아래와 같은 형태의 Override 을 구현해야 합니다.
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
}
매개변수로 받게 되는 converters 에 새로운 MessageConverter 을 추가(add method 이용)하는 방식입니다. Jackson 은 AbstractJackson2HttpMessageConverter 을 제공하기 때문에, 이것을 이용해서 writeInternal 을 Override 해서 구현하면 됩니다. 물론 wirteInternal 에 대한 소스는 오픈소스이기 때문에 쉽게 구할 수 있기 때문에, objectWriter.writeValue(generator, value); 이전에 value 에 원하는 값을 추가하면 JSON 에 값이 추가됩니다.
configureMessageConverters 일 이용하면 JSON 뿐만 아니라 Spring 에서 기본 제공하지 않는 MessagePack 같은 것도 converter 로 추가하는 등의 작업이 가능합니다.
댓글 없음:
댓글 쓰기