Back-End/Spring Boot
스프링 타입 컨버터
newny
2023. 8. 25. 03:35
반응형
스프링 타입 변환 적용 예
- 스프링 MVC 요청 파라미터
- @RequestParam, @ModelAttribute, @PathVariable
- @Value 등으로 YML 정보 읽기
- XML에 넣은 스프링 빈 정보를 변환
- 뷰를 렌더링 할 때
conversionService 인터페이스
컨버팅 가능 여부 확인, 컨버팅 지원
인터페이스 분리 원칙(Interface Segregation Prinsipal)
- 클라이언트가 자신이 이용하지 않는 메소드에 의존하지 않아야 한다.
- 컨버터를 사용하는 클라이언트는 'ConversionService'만 의존하면 되므로, 컨버터를 어떻게 등록하고 관리하는지는 전혀 몰라도 된다.
FormatterRegistry.addConverter()
컨버터를 추가하면 추가한 컨버터가 기본 컨버터 보다 높은 우선순위를 가진다.
추가한 컨버터와 추가한 포멧터중 컨버터가 높은 우선순위를 가진다.
타임리프 th:field 기능
converter가 자동으로 적용된다.
포맷터 - Formatter
- 컨버터의 특별한 버전 (객체→문자, 문자→객체 / 현지화(Locale))
- 객체를 특정한 포맷에 맞추어 문자로 출력하거나 또는 그 반대의 역할을 하는 것에 특화된 기능
- 객체를 문자로, 문자를 객체로 변경하는 두가지 기능을 모두 수행
FormattingConversionService
컨버전 서비스에 포맷터를 추가할 수 있음 (ConversionService 관련 기능을 상속 받음)
스프링이 제공하는 기본 포멧터
@NumberFormat : 숫자 관련 형식 지정 포맷터 사용
@DateTimeFormat : 날짜 관련 형식 지정 포맷터 사용
반응형