분류 전체보기
스프링 MVC 2 - 포맷터 적용하기
스프링 MVC 2 - 포맷터 적용하기
2022.10.07포맷터 적용하기 포맷터를 웹 애플리케이션에 적용해보자. WebConfig - 수정 주의 StringToIntegerConverter, IntegerToStringConverter를 꼭 주석처리 하자. MyNumberFormatter도 숫자 → 문자, 문자 → 숫자로 변경하기 때문에 둘의 기능이 겹친다. 주석처리하지 않으면 우선순위는 컨버터가 우선하므로 포맷터가 적용되지 않고 컨버터가 적용된다. 실행 - 객체 → 문자 http://localhost:8080/converter-view 컨버전 서비스를 적용한 결과 MyNumberFormatter가 적용되어서 10,000 문자가 출력된 것을 확인할 수 있다. 실행 - 문자 → 객체 http://localhost:8080/hello-v2?data=10,000 "..
스프링 MVC 2 - 포맷터를 지원하는 컨버전 서비스
스프링 MVC 2 - 포맷터를 지원하는 컨버전 서비스
2022.10.07포맷터를 지원하는 컨버전 서비스 컨버전 서비스에는 컨버터만 등록할 수 있고, 포맷터를 등록할 수는 없다. 그런데 생각해보면 포맷터는 객체 → 문자, 문자 → 객체로 변환하는 특별한 컨버터일 뿐이다. 포맷터를 지원하는 컨버전 서비스를 사용하면 컨버전 서비스에 포맷터를 추가할 수 있다. 내부에서 어댑터 패턴을 사용해서 Formatter가 Converter처럼 동작하도록 지원한다. FormattingConversionService는 포맷터를 지원하는 컨버전 서비스이다. DefaultFormattingConversionService는 FormattingConversionService에 기본적인 통화, 숫자 관련 몇가지 기본 포맷터를 추가해서 제공한다. DefaultFormattingConversionServic..
스프링 MVC 2 - 포맷터 - Formatter
스프링 MVC 2 - 포맷터 - Formatter
2022.10.07포맷터 - Formatter Converter는 입력과 출력 타입에 제한이 없는, 범용 타입 변환 기능을 제공한다. 이번에는 일반적인 웹 애플리케이션 환경을 생각해보자. boolean타입을 숫자로 바꾸는 것 같은 범용 기능 보다는 개발자 입장에서는 문자를 다른 타입으로 변환하거나, 다른 타입을 문자로 변환하는 상황이 대부분이다. 앞서 살펴본 예제들을 떠올려 보면 문자를 다른 객체로 변환하거나 객체를 문자로 변환하는 일이 대부분이다. 웹 애플리케이션에서 객체를 문자로, 문자를 객체로 변환하는 예 화면에 숫자를 출력해야 하는데, Integer → String 출력 시점에 숫자 1000 → 문자 "1,000" 이렇게 1000 단위에 쉼표를 넣어서 출력하거나, 또는 "1,000" 라는 문자를 1000이라는 숫자..
스프링 MVC 2 - 뷰 템플릿에 컨버터 적용하기
스프링 MVC 2 - 뷰 템플릿에 컨버터 적용하기
2022.10.06뷰 템플릿에 컨버터 적용하기 이번에는 뷰 템플릿에 컨버터를 적용하는 방법을 알아보자. 타임리프는 랜더링시에 컨버터를 적용해서 랜더링하는 방법을 편리하게 지원한다. 이전까지는 문자를 객체로 변환했다면, 이번에는 그 반대로 객체를 문자로 변환하는 작업을 확인할 수 있다. ConverterController Model에 숫자 10000와 ipPort 객체를 담아서 뷰 템플릿에 전달한다. resources/templates/converter-view.html 타임리프는 ${{...}}를 사용하면 자동으로 컨버전 서비스를 사용해서 변환된 결과를 출력해준다. 물론 스프링과 통합되어서 스프링이 제공하는 컨버전 서비스를 사용하므로, 우리가 등록한 컨버터들을 사용할 수 있다. 변수 표현식 : ${...} 컨버전 서비스 ..
스프링 MVC 2 - 스프링에 Converter 적용하기
스프링 MVC 2 - 스프링에 Converter 적용하기
2022.10.06스프링에 Converter 적용하기 웹 애플리케이션에 Converter를 적용해보자. WebConfig - 컨버터 등록 스프링은 내부에서 ConversionService를 제공한다. 우리는 WebMvcConfigurer가 제공하는 addFormatters()를 사용해서 추가하고 싶은 컨버터를 등록하면 된다. 이렇게 하면 스프링은 내부에서 사용하는 ConversionService에 컨버터를 추가해준다. 등록한 컨버터가 잘 동작하는지 확인해보자. HelloController - 기존 코드 실행 http://localhost:8080/hello-v2?data=10 실행 로그 ?data=10의 쿼리 파라미터는 문자이고 이것을 Integer data로 변환하는 과정이 필요하다. 실행해보면 직접 등록한 String..
스프링 MVC 2 - 컨버전 서비스 - ConversionService
스프링 MVC 2 - 컨버전 서비스 - ConversionService
2022.10.06컨버전 서비스 - ConversionService 이렇게 타입 컨버터를 하나하나 직접 찾아서 타입 변화에 사용하는 것은 매우 불편하다. 그래서 스프링은 개별 컨버터를 모아두고 그것들을 묶어서 편리하게 사용할 수 있는 기능을 제공하는데, 이것이 바로 컨버전 서비스(ConversionService)이다. ConversionService 인터페이스 package org.springframework.core.convert; import org.springframework.lang.Nullable; public interface ConversionService { boolean canConvert(@Nullable Class sourceType, Class targetType); boolean canConvert..