데이터 변환 with Spring
- Custom Property Editor: Spring이 사용 가능한 경우 유형 변환에 사용할 첫 번째 메커니즘입니다.
- 변환 서비스(
Converter
및Formatter
포함): 적합한 사용자 정의PropertyEditor
를 사용할 수 없는 경우 Spring은 해당 유형에 등록된Converter
또는Formatter
를 사용합니다. - 기본 속성 편집기: 다른 변환을 수행할 수 없는 경우 Spring은 기본
PropertyEditor
로 폴백합니다.
PropertyEditor
PropertyEditor
는 양방향 유형 변환을 위해 Spring에서 사용되는 Java Beans의 기능입니다.
속성 편집기에는 두 가지 유형이 있습니다.
- Default Property Editor: Spring에서 기본적으로 제공합니다.
- Custom Property Editor: 일반적으로
PropertyEditorSupport
를 확장하여 사용자가 구현합니다.
public class ExoticTypeEditor extends PropertyEditorSupport {
@Override
public void setAsText(String text) {
setValue(new ExoticType(text.toUpperCase()));
}
}
이 예에서는 String
을 ExoticType
으로 변환하는 사용자 정의 PropertyEditor
가 생성됩니다.
양방향 변환이기 때문에, String
에서 ExoticType
으로, ExoticType
에서 String
으로 모두 변환할 수 있습니다.
Converter
Converter
는 인스턴스 변수에 의존할 필요가 없는 PropertyEditor
에 대한 보다 세련된 대안으로 스레드로부터 안전합니다.
public class StringToExoticTypeConverter implements Converter<String, ExoticType> {
@Override
public ExoticType convert(String source) {
return new ExoticType(source.toUpperCase());
}
}
Formatter
'Formatter’는 'Converter’와 유사하지만 특히 지역화된 필드 값을 구문 분석하고 인쇄하는 데 사용됩니다.
Formatter
는 일반적으로 바인딩해야 하는 필드에 적용됩니다
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date date;
이 예에서 @DateTimeFormat
주석은 Formatter
를 Date
필드에 적용하여 파싱하고 특정 형식으로 인쇄합니다.
부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>
728x90
'DEV > Java' 카테고리의 다른 글
Easy Random (0) | 2023.06.02 |
---|---|
JDBC (0) | 2023.06.02 |
데이터 검증 with Spring (0) | 2023.05.27 |
Spring MVC 예외 처리 및 상태 코드 매핑 가이드 (0) | 2023.05.26 |
예외처리 with Spring (0) | 2023.05.26 |