본문 바로가기
Framework & Library/Spring Boot

[Spring Boot] : 포맷터를 지원하는 컨버젼 서비스

by 오주현 2022. 3. 16.
반응형

이번 강의에서는 컨버전 서비스를 만들고 포맷터와 컨버전을 등록하고 테스트를 진행했다.

포맷터를 지원하는 컨버전 서비스를 사용하면 컨버전 서비스에 포맷터를 추가할 수 있다. 내부에서 어댑터 패턴을 사용해 Formatter가 Converter처럼 동작하도록 지원한다고 한다.

 

FormattingConversionService는 포맷터를 지원하는 컨버전 서비스이다. DefaultFormattingConversionService는 FormattingConversionService에 통화나 숫자 관련 포맷터를 제공한다.

 

@Test
    void formattingConversionService() {
        DefaultFormattingConversionService conversionService = new DefaultFormattingConversionService();

        //컨버터 등록
        conversionService.addConverter(new StringToIpPortConverter());
        conversionService.addConverter(new IpPortToStringConverter());

        //포멧터 등록
        conversionService.addFormatter(new MyNumberFormatter());

        //컨버터 사용
        IpPort ipPort = conversionService.convert("127.0.0.1:8080", IpPort.class);
        assertThat(ipPort).isEqualTo(new IpPort("127.0.0.1", 8080));

        //포멧터 사용
        assertThat(conversionService.convert(1000, String.class)).isEqualTo("1,000");
        assertThat(conversionService.convert("1000", Long.class)).isEqualTo(1000L);
    }

이번에는 테스트코드 작성으로 바로 적용해서 확인해 봤다. ForamttingConversionService는 ConversionService관련 기능을 상속받는다. 때문에 컨버터, 포맷터 둘 다 등록이 가능한 것이다. 사용할 때에는 ConversionService가 제공하는 convert를 사용하면 된다.


스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 참고하여 공부하였습니다.

반응형

댓글