Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

charminseok

[Spring] Data Binding 본문

Spring

[Spring] Data Binding

charminseok 2021. 1. 24. 22:06

Data Binding은 사용자 입력을 애플리케이션 도메인 모델에 동적으로 변환해 넣어주는 유용한 기능이다. 스프링에서 제공해주는 인터페이스로는 DataBinder가 있다.

 

이러한 기능을 제공하는 이유로는 사용자는 대부분의 입력값을 문자열로 사용하는데, 이런 데이터 타입을 DataBinder가 제공하는 기능으로 자바의 데이터 타입으로 변환해서 넣어주기 때문이다.

 

PropertyEditor

PropertyEditor의 구현체들은 thread-safe하지 않기때문에, 여러 쓰레드에 공유되서 사용하면 안된다.(Bean으로 등록해 사용하면 안됌) 상태정보를 가지고 있다

Object와 String간의 변환만 사용할 수 있어서 매우 제한적이다.

 

Converter

이러한 단점들때문에 Spring 3.0부터 Converter가 생김

Converter는 상태정보를 저장하지 않기때문에 Bean으로 등록해도 된다.(ConverterRegistry에 등록된다.)

 

Formatter

웹쪽은 사용자의 입력값이 대부분 문자열로 들어오고, 객체들을 문자로 내보내는 경우가 많다. 문자열을 massageSource를 사용해서 보내야할 수도 있기때문에 스프링에서 웹에 특화된 기능을 제공하는 것이 Formatter이다. propertyEditor와 비슷하게 문자 -> 객체, 객체 -> 문자 하는것이지만, Locale정보 기반으로 사용할 수 있다.(다국화 기능) 또한 bean으로 등록할 수 있다.

 

ConversionService

Converter와 Formatter는 ConversionService에 등록이 되고 이것을 통해 변환을 할 수 있다.

DefaultFormattingConversionService 클래스를 가장 많이 사용한다.

 

 

'Spring' 카테고리의 다른 글

[Spring] AOP  (0) 2021.01.26
[spring] SpEL  (0) 2021.01.26
[Spring] Validation 추상화  (0) 2021.01.23
[Spring] Resource 추상화  (0) 2021.01.23
Spring MessageSource  (0) 2021.01.22