반응형
포맷터는 객체를 특정한 포맷에 맞춰 문자로 출력하거나 그 반대 역할을 하는 것에 특화된 기능이라고 한다. 그냥 컨버터의 특별한 버전으로 이해하면 된다.
이번 강의에서는 포맷터를 적용해 보고 간단한 설명을 해줬다. 우선, 컨버전과 차이다 Converter은 범용(객체 → 객체)이고, Formatter는 문자에 특화되어 있다고 한다.(객체 → 문자, 문자 → 객체) + Locale(현지화)
public class MyNumberFormatter implements Formatter<Number> {
@Override
public Number parse(String text, Locale locale) throws ParseException {
log.info("text={}, locale={}", text, locale);
//"1,000" -> 1000
NumberFormat format = NumberFormat.getInstance(locale);
return format.parse(text);
}
}
문자를 숫자로 변환하는 포맷터이다. 문자 중간에 쉼표를 적용하기 위해 자바가 제공하는 NumberFormat 객체를 사용하면 된다. 이 객체는 Locale 정보를 활용해 나라별로 다른 숫자 포맷을 만들어준다.
parse() 를 사용해 문자를 숫자로 변환한다. Number 타입은 Integer, Long 등 숫자 타입의 부모 클래스이다.
class MyNumberFormatterTest {
MyNumberFormatter formatter = new MyNumberFormatter();
@Test
void parse() throws ParseException {
Number result = formatter.parse("1,000", Locale.KOREA);
assertThat(result).isEqualTo(1000L); //Long 타입 주의
}
}
테스트도 했다. parse() 결과가 Long이라 비교할 때 마지막에 L을 넣어줘야 하는 점을 주의해야 한다.
스프링은 용도에 따라 다양한 포맷터를 제공하는데 🔗공식 문서를 참고하면 된다.
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 참고하여 공부하였습니다.
반응형
'Framework & Library > Spring Boot' 카테고리의 다른 글
[Spring Boot] : 포맷터를 웹 애플리케이션에 적용하기 (0) | 2022.03.16 |
---|---|
[Spring Boot] : 포맷터를 지원하는 컨버젼 서비스 (0) | 2022.03.16 |
[Spring Boot] : 뷰 템플릿에 컨버터 적용하기 (0) | 2022.03.15 |
[Spring Boot] : 스프링에 Converter 적용하기 (0) | 2022.03.15 |
[Spring Boot] : myBatis와 JPA 간단 정리 (0) | 2022.03.15 |
댓글