본문 바로가기

🌈 백엔드/스프링 MVC

스프링_ WebDataBinder & 데이터변환

반응형
SMALL

 

 

 

[1] PropertyEditor 타입변환


(1) PropertyEditor

양방향 타입 변환에 관여한다

특정 타입이나 이름의 필드에 적용가능하다

인스턴스 변수를 사용한다 

변환 : String -> 타입 , 타입 -> String 

 

(2) PropertyEditor 종류 

디폴트 PropertyEditor : 스프링이 기본적으로 제공한다

커스텀 PropertyEditor : 사용자가 직접 구현한다. PropertyEditoerSupport를 상속하면 편리하다

 

PropertyEditoerSupport 가이드

 

org.springframework.beans.propertyeditors (Spring Framework 6.0.11 API)

Property editor for any Number subclass such as Short, Integer, Long, BigInteger, Float, Double, BigDecimal.

docs.spring.io

 

(3) PropertyEditor 적용 

모든 컨트롤러에 변환 적용 : WebBindingInitializer

특정 컨트롤러에 변환 적용 : @InitBinder 메서드 작성 

 

 

 

 

[2] Converter 타입변환


(1)Converter 

단방향 타입 변환

PropertyEditor의 단점을 개선하였다 

인스턴스 변수를 사용하지 않는다 

변환 : 타입a -> 타입b , string -> stirng[] 

 

(2) Converter 종류 

ConversionService 의 Converter 종류 출력하기 

 

(3) Converter 적용 


모든 컨트롤러에 변환 적용 : ConfigurableWebBindingInitializer

특정 컨트롤러에 변환 적용 : @InitBinder 메서드 작성 

 

 

[3] Formatter 타입변환

 


(1)Formatter 

양방향 타입 변환

인터페이스이다 

변환 : String -> 타입 , 타입 -> String 

 

(3)Formatter 적용

 

Formatter 인터페이스를 만들어 스프링이 만들어놓은 

@NumberFormate : 숫자변환 (Objedt <->String)

@DateTimeFormat  : 날짜 변환

애너테이션을 사용한다 

 

 

 

 

 

[4] 타입변환 우선순위 


  1. 커스텀 PropertyEditor 
  2. ConverterService
  3. 디폴트 PropertyEditer
반응형
LIST

'🌈 백엔드 > 스프링 MVC' 카테고리의 다른 글

바인딩 = 파라미터 수집  (40) 2023.11.27
스프링_ WebDataBinder & 데이터검증  (0) 2023.08.30
스프링_DispatcherServlet  (0) 2023.08.29
스프링_예외처리  (2) 2023.08.28
스프링_세션과 서버 부담  (0) 2023.08.28