old posting

    [Spring] SpEL

    SpEL Spring Expression Language 객체 그래프를 조회하고 조작하는 기능을 제공한다. Unified EL과 비슷하지만 메소드 호출을 지원하며, 문자열 템플릿 기능도 제공한다. OGNL, MVEL, JBOss EL 등 자바에서 사용할 수 있는 여러 EL이 있지만 SpEL은 모든 스프링 프로젝트 전반에 걸쳐 사용할 EL로 만들었다. 스프링 3.0 부터 지원한다. SpEL 구성 ExpressionParser parser = new SpelExpressionParser() StandardEvaluationContext context = new StandardEvaluationContext(bean) Expression expression = parser.parseExpression("SpE..

    [Spring] Converter와 Fomatter

    [Spring] Converter와 Fomatter

    Converter S 타입을 T타입으로 변환할 수 잇는 매우 일반적인 변환기 상태 정보 없음 == Stateless == 쓰레드-세이프 ConverterRegistry에 등록해서 사용한다. Formatter PropertyEdito 대체제 Object와 String간의 변환을 담당한다. 문자열을 Locale에 따라 다국화하는 기능도 제공한다. (optional) FormatterResgistry에 등록해서 사용한다. ConversionService 실제 변환 작업은 이 인터페이스를 통해서 쓰레드-세이프하게 사용할 수 있다. Spring MVC, 빈(value) 설정, SpEL 에서 사용한다. DefaultFormattingConversionService FormatterRegistry Conversion..

    [Spring] 데이터바인딩과 PropertyEditor

    [Spring] 데이터바인딩과 PropertyEditor

    데이터 바인딩 기술적인 관점 프로퍼티 값을 타겟 객체에 설정하는 기능 사용자 관점 사용자 입력값을 어플리케이션 도메인 모델에 동적으로 변환해 넣어주는 기능 입력값은 대부분 문자열인데, 그 값을 객체가 가지고 있는 int, long, Boolean, Date 등 심지어 Event, Book 같은 도메인 타입으로도 변환해서 넣어주는 기능 PropertyEditor org.spingframework.validation.DataBinder 스프링 3.0 이전까지 DataBinder가 변환 작업 시 사용하던 인터페이스 쓰레드-세이프 하지 않는다. 상태 정보를 저장하고 있다. 따라서 싱글톤 빈으로 등록해서 사용하면 문제가 될 수 있다. Object와 String간의 변환만 할 수 있어 사용 범위가 제한적이다.

    [Spring] Validation

    Validation 추상화 어플리케이션에서 사용하는 객체 검증용 인터페이스 특징 어떠한 계층과도 관계가 없다. 모든 계층(웹, 서비스, 데이터)에서 사용해도 좋다. 구현체 중 하나로, JSR-303(Bean Validation 1.0)과 JSR-349(Bean Validation 1.1)을 지원한다. (LocalValidatorFactoryBean) DataBinder에 들어가 바인딩 할 때 같이 사용되기도 한다. 인터페이스 boolean supports(Class clazz) 어떤 타입의 객체를 검증할 때 사용할 것인지 결정한다. void validate(Object obj, Errors e) 실제 검증 로직을 이 안에서 구현 구현할 때 ValidationUtils 사용하면 편리하다. 스프링 부트 2...