인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

이북자님의 프로필 이미지
이북자

작성한 질문수

생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현

Github Template Project 등록

configureMessageConverters() 등록 필요성

작성

·

647

0

안녕하세요 강의 잘듣고 있습니다!

 

jojoldu 블로그를 참고해보니 WebMvcConfigurer의 configureMessageConverters()로 MessageConverter를 등록하지 않아도 자동으로 된다고 하는 것 같다고 합니다.

 

그래서 Test해보니 실제 치환이 되고 있는 것 같아서

 

혹시 configureMessageConverters()를 추가하신 의도가 있으신 건지, 필요성이 있는지 질문 드립니다!.

 

감사합니다.

답변 1

0

구파고님의 프로필 이미지
구파고
지식공유자

안녕하세요! 해당 부분은 제가 봤던 자료에서는 configureMessageConverters에 등록하는 부분까지 처리를 해주고 있었는데, 말씀해주신대로 등록하지 않고 테스트를 해봐도 정상적으로 동작하네요!

말씀해주신대로 추가로 등록까지 하지 않아도 됩니다.

저는 configureMessageConverters 를 등록하지 않으면 json body요청건 치환이 되지 않는데요.... 이상하네요.. 추가 처리가 필요한가요

구파고님의 프로필 이미지
구파고
지식공유자

테스트 해보니까 강의 코드에서 configureMessageConverters 를 WebConfig에 적지 않아도 정상적으로 동작하고있는데, 강의 코드랑 한번 비교해보시면서 찾아보셔야할꺼 같습니다! 아래 코드 영역은 생략해도 정상적으로 동작해야합니다.

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    converters.add(jsonEscapeConverter());
}

configureMessageConverters를 주석처리하면
jsonEscapeConverter는 어디서 호출 되는건가요? 이 부분이 이해가 안가네요....

 

구파고님의 프로필 이미지
구파고
지식공유자

jsonEscapeConverter를 BEAN으로 등록해주면 스프링에서 HttpMessageConverter에 Bean으로 자동으로 등록해줍니다. jsonEscapeConverter를 빈으로 등록해주시면됩니다!

 

@Bean
public MappingJackson2HttpMessageConverter jsonEscapeConverter() {
    ObjectMapper copy = objectMapper.copy();
    copy.getFactory().setCharacterEscapes(new HtmlCharacterEscapes());
    return new MappingJackson2HttpMessageConverter(copy);
}
이북자님의 프로필 이미지
이북자

작성한 질문수

질문하기